[med-svn] [Git][med-team/python-scitrack][master] 3 commits: fix-missing-delme.patch: new: ensure delme modules are importable.
Étienne Mollier (@emollier)
gitlab at salsa.debian.org
Tue Aug 4 20:25:45 BST 2026
Étienne Mollier pushed to branch master at Debian Med / python-scitrack
Commits:
f8111bd2 by Étienne Mollier at 2026-08-04T21:23:38+02:00
fix-missing-delme.patch: new: ensure delme modules are importable.
Closes: #1143373
Thanks: Santiago Vila
- - - - -
ee67cdea by Étienne Mollier at 2026-08-04T21:23:42+02:00
d/control: activate dh-sequence-single-binary.
- - - - -
9d9ea7ff by Étienne Mollier at 2026-08-04T21:23:42+02:00
d/changelog: ready for upload to unstable.
- - - - -
4 changed files:
- debian/changelog
- debian/control
- + debian/patches/fix-missing-delme.patch
- + debian/patches/series
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,11 @@
+python-scitrack (2026.6.24-2) unstable; urgency=medium
+
+ * fix-missing-delme.patch: new: ensure delme modules are importable.
+ Thanks to Santiago Vila (Closes: #1143373)
+ * d/control: activate dh-sequence-single-binary.
+
+ -- Étienne Mollier <emollier at debian.org> Tue, 04 Aug 2026 21:20:59 +0200
+
python-scitrack (2026.6.24-1) unstable; urgency=medium
* Team Upload.
=====================================
debian/control
=====================================
@@ -5,6 +5,7 @@ Uploaders: Andreas Tille <tille at debian.org>,
Section: science
Testsuite: autopkgtest-pkg-python
Build-Depends: debhelper-compat (= 14),
+ dh-sequence-single-binary,
dh-python,
flit,
pybuild-plugin-pyproject,
=====================================
debian/patches/fix-missing-delme.patch
=====================================
@@ -0,0 +1,127 @@
+Description: BUG: attempt on flaky module import tests #73
+ [CHANGED] Explicitly invalidate import caches, plus
+ isolate temp modules and improve cleanup.
+Author: Gavin Huttley <Gavin.Huttley at me.com>
+Bug: https://github.com/HuttleyLab/scitrack/issues/73
+Bug-Debian: https://bugs.debian.org/1143373
+Forwarded: https://github.com/HuttleyLab/scitrack/pull/74
+Reviewed-By: Santiago Vila <sanvila at debian.org>
+Last-Update: 2026-08-03
+
+diff --git a/tests/test_logging.py b/tests/test_logging.py
+index d7c5584..229d475 100644
+--- a/tests/test_logging.py
++++ b/tests/test_logging.py
+@@ -1,3 +1,4 @@
++import importlib
+ import logging
+ import sys
+ from collections import Counter
+@@ -31,6 +32,27 @@ def logfile(tmp_path):
+ return tmp_path / LOGFILE_NAME
+
+
++ at pytest.fixture
++def make_module(tmp_path, monkeypatch):
++ # creates an importable module from source in an isolated tmp dir
++ monkeypatch.syspath_prepend(str(tmp_path))
++ created: list[str] = []
++
++ def make(name, source):
++ (tmp_path / f"{name}.py").write_text(source)
++ # invalidate_caches() is required because the directory is added to
++ # sys.path after interpreter start, so the import system's directory
++ # cache would otherwise not see the newly written file
++ importlib.invalidate_caches()
++ created.append(name)
++ return importlib.import_module(name)
++
++ yield make
++
++ for name in created:
++ sys.modules.pop(name, None)
++
++
+ def test_creates_path(logfile):
+ """creates a log path"""
+ LOGGER = CachingLogger(create_dir=True)
+@@ -312,46 +334,32 @@ def test_log_versions_partial_list_raises_eagerly(logfile):
+ assert not any("version :" in line for line in logfile.read_text().splitlines())
+
+
+-def test_log_versions_uninstalled_module_does_not_raise(logfile):
+- # an imported module with no installed dist -> no raise; version recorded
+- pyfile = TEST_ROOTDIR / "delme_log.py"
+- pyfile.write_text("__version__ = 'local-only'\n")
+- sys.path.append(str(TEST_ROOTDIR))
+- import delme_log
++def test_log_versions_uninstalled_module_does_not_raise(logfile, make_module):
++ # an imported module with no installed dist -> version is recorded
++ module = make_module("delme_log", "__version__ = 'local-only'\n")
+
+ LOGGER = CachingLogger(create_dir=True)
+ LOGGER.log_file_path = logfile
+- LOGGER.log_versions(delme_log)
++ LOGGER.log_versions(module)
+ LOGGER.shutdown()
+- pyfile.unlink()
+ assert any(
+ "delme_log==local-only" in line for line in logfile.read_text().splitlines()
+ )
+
+
+-def test_get_version_for_package():
++def test_get_version_for_package(make_module):
+ """should track version if package is a module"""
+ import numpy as np
+
+ got = get_version_for_package(np)
+ assert got == np.__version__
+- # one with a callable
+- pyfile = TEST_ROOTDIR / "delme.py"
+- pyfile.write_text("def version():\n return 'my-version'")
+- sys.path.append(TEST_ROOTDIR)
+- import delme
+-
+- got = get_version_for_package("delme")
+- assert got == "my-version"
+- pyfile.unlink()
+-
+- # func returns a list
+- pyfile.write_text("version = ['my-version']\n")
+- from importlib import reload
++ # version is a callable
++ make_module("delme_callable", "def version():\n return 'my-version'")
++ assert get_version_for_package("delme_callable") == "my-version"
+
+- got = get_version_for_package(reload(delme))
+- assert got == "my-version"
+- pyfile.unlink()
++ # version is a list
++ module = make_module("delme_list", "version = ['my-version']\n")
++ assert get_version_for_package(module) == "my-version"
+
+
+ def test_tracks_versions_module(logfile):
+@@ -369,18 +377,14 @@ def test_tracks_versions_module(logfile):
+ assert expect in line, line
+
+
+-def test_log_versions_unresolvable_version_logs_unknown(logfile):
++def test_log_versions_unresolvable_version_logs_unknown(logfile, make_module):
+ # a module with no version attribute -> version None normalised to UNKNOWN
+- pyfile = TEST_ROOTDIR / "delme_nover.py"
+- pyfile.write_text("answer = 42\n")
+- sys.path.append(str(TEST_ROOTDIR))
+- import delme_nover
++ module = make_module("delme_nover", "answer = 42\n")
+
+ LOGGER = CachingLogger(create_dir=True)
+ LOGGER.log_file_path = logfile
+- LOGGER.log_versions(delme_nover)
++ LOGGER.log_versions(module)
+ LOGGER.shutdown()
+- pyfile.unlink()
+ lines = logfile.read_text().splitlines()
+ assert any("delme_nover==UNKNOWN" in line for line in lines)
+ assert not any("delme_nover==None" in line for line in lines)
=====================================
debian/patches/series
=====================================
@@ -0,0 +1 @@
+fix-missing-delme.patch
View it on GitLab: https://salsa.debian.org/med-team/python-scitrack/-/compare/cac97077d2392dc54269071a2e579201549c42a7...9d9ea7ffe4fadbf06189d5f8df93b966ed6b1fce
--
View it on GitLab: https://salsa.debian.org/med-team/python-scitrack/-/compare/cac97077d2392dc54269071a2e579201549c42a7...9d9ea7ffe4fadbf06189d5f8df93b966ed6b1fce
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260804/a328a174/attachment-0001.htm>
More information about the debian-med-commit
mailing list