From 96f0bd4e46c8023cd5035aba2299df70562c2837 Mon Sep 17 00:00:00 2001 From: username Date: Thu, 30 Jul 2026 19:10:03 -0400 Subject: [PATCH] fix(ci): prevent sys.modules cross-contamination between test directories in check-artifacts When unittest discover processes skills/binary-analysis/tests/ before tests/, the integration package gets cached in sys.modules from the first discover call. Later discover calls reuse the cached package which doesn't contain the expected test modules, causing spurious ModuleNotFoundError failures. Fix: snapshot and restore sys.modules between discover iterations. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> --- scripts/check-artifacts.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/check-artifacts.py b/scripts/check-artifacts.py index 43bc337..877be22 100644 --- a/scripts/check-artifacts.py +++ b/scripts/check-artifacts.py @@ -68,9 +68,13 @@ def run_checks(files: list[Path]) -> list[str]: for directory in test_directories(files): relative = directory.relative_to(ROOT) + before = set(sys.modules) result = unittest.TextTestRunner(verbosity=0).run( unittest.defaultTestLoader.discover(str(directory), top_level_dir=str(directory)) ) + for mod in list(sys.modules): + if mod not in before: + del sys.modules[mod] if not result.wasSuccessful(): errors.append( f"unittest discover {relative}: "