From ee7a7adc8bff9f219c4f8e20a64d51992e497cfd Mon Sep 17 00:00:00 2001 From: Tim Stranske Date: Mon, 4 May 2026 15:41:00 -0500 Subject: [PATCH] fix sync test dependency scan --- scripts/sync_test_dependencies.py | 7 +++++++ .../scripts/sync_test_dependencies.py | 7 +++++++ .../test_sync_test_dependencies_mapping.py | 20 +++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/scripts/sync_test_dependencies.py b/scripts/sync_test_dependencies.py index 498d08c9e..00601bab5 100644 --- a/scripts/sync_test_dependencies.py +++ b/scripts/sync_test_dependencies.py @@ -55,6 +55,8 @@ "gc", "glob", "hashlib", + "html", + "http", "importlib", "inspect", "io", @@ -71,6 +73,8 @@ "random", "re", "runpy", + "email", + "secrets", "shlex", "shutil", "signal", @@ -104,6 +108,8 @@ "traceback", "pprint", } +if hasattr(sys, "stdlib_module_names"): + STDLIB_MODULES.update(sys.stdlib_module_names) # Known test framework modules TEST_FRAMEWORK_MODULES = { @@ -220,6 +226,7 @@ def get_project_modules() -> set[str]: # Module name to package name mappings for known exceptions MODULE_TO_PACKAGE = { + "jwt": "PyJWT", "yaml": "PyYAML", "PIL": "Pillow", "sklearn": "scikit-learn", diff --git a/templates/consumer-repo/scripts/sync_test_dependencies.py b/templates/consumer-repo/scripts/sync_test_dependencies.py index 2c4beddba..2a6dc998e 100644 --- a/templates/consumer-repo/scripts/sync_test_dependencies.py +++ b/templates/consumer-repo/scripts/sync_test_dependencies.py @@ -55,6 +55,8 @@ "gc", "glob", "hashlib", + "html", + "http", "importlib", "inspect", "io", @@ -71,6 +73,8 @@ "random", "re", "runpy", + "email", + "secrets", "shlex", "shutil", "signal", @@ -103,6 +107,8 @@ "traceback", "pprint", } +if hasattr(sys, "stdlib_module_names"): + STDLIB_MODULES.update(sys.stdlib_module_names) # Known test framework modules TEST_FRAMEWORK_MODULES = { @@ -219,6 +225,7 @@ def get_project_modules() -> set[str]: # Module name to package name mappings for known exceptions MODULE_TO_PACKAGE = { + "jwt": "PyJWT", "yaml": "PyYAML", "PIL": "Pillow", "sklearn": "scikit-learn", diff --git a/tests/scripts/test_sync_test_dependencies_mapping.py b/tests/scripts/test_sync_test_dependencies_mapping.py index c722748c6..267d52505 100644 --- a/tests/scripts/test_sync_test_dependencies_mapping.py +++ b/tests/scripts/test_sync_test_dependencies_mapping.py @@ -20,6 +20,7 @@ def test_pptx_maps_to_python_pptx_in_repo_script(): ) assert module.MODULE_TO_PACKAGE["pptx"] == "python-pptx" + assert module.MODULE_TO_PACKAGE["jwt"] == "PyJWT" def test_pptx_maps_to_python_pptx_in_consumer_template(): @@ -29,3 +30,22 @@ def test_pptx_maps_to_python_pptx_in_consumer_template(): ) assert module.MODULE_TO_PACKAGE["pptx"] == "python-pptx" + assert module.MODULE_TO_PACKAGE["jwt"] == "PyJWT" + + +def test_stdlib_imports_from_sync_pr_logs_are_ignored_in_repo_script(): + module = _load_module( + "sync_test_dependencies_repo_stdlib", + Path("scripts/sync_test_dependencies.py"), + ) + + assert {"email", "html", "http", "secrets"}.issubset(module.STDLIB_MODULES) + + +def test_stdlib_imports_from_sync_pr_logs_are_ignored_in_consumer_template(): + module = _load_module( + "sync_test_dependencies_consumer_template_stdlib", + Path("templates/consumer-repo/scripts/sync_test_dependencies.py"), + ) + + assert {"email", "html", "http", "secrets"}.issubset(module.STDLIB_MODULES)