diff --git a/scripts/tier2/artifacts/post_module_taxonomy_de_cruft_20260627/verify_pydantic_test.py b/scripts/tier2/artifacts/post_module_taxonomy_de_cruft_20260627/verify_pydantic_test.py new file mode 100644 index 00000000..a599e868 --- /dev/null +++ b/scripts/tier2/artifacts/post_module_taxonomy_de_cruft_20260627/verify_pydantic_test.py @@ -0,0 +1,20 @@ +import subprocess +import sys +import os + +os.chdir(r"C:\projects\manual_slop_tier2") +result = subprocess.run( + [sys.executable, "-c", ( + "import sys\n" + "import src.models\n" + "print('pydantic in sys.modules:', 'pydantic' in sys.modules)\n" + "print('src.models imported OK')\n" + "from src.api_hooks import GenerateRequest, ConfirmRequest\n" + "print('GenerateRequest:', GenerateRequest)\n" + "print('ConfirmRequest:', ConfirmRequest)\n" + )], + capture_output=True, text=True, timeout=30 +) +print("stdout:", result.stdout) +print("stderr:", result.stderr) +print("returncode:", result.returncode) diff --git a/tests/test_models_no_top_level_pydantic.py b/tests/test_models_no_top_level_pydantic.py index e85bf393..860f10a9 100644 --- a/tests/test_models_no_top_level_pydantic.py +++ b/tests/test_models_no_top_level_pydantic.py @@ -46,7 +46,7 @@ def test_models_does_not_import_pydantic_at_module_level() -> None: def test_generate_request_works_when_explicitly_imported() -> None: res = _run_in_subprocess(""" - from src.models import GenerateRequest + from src.api_hooks import GenerateRequest req = GenerateRequest(prompt="hello") print(req.prompt) print(req.auto_add_history) @@ -57,7 +57,7 @@ def test_generate_request_works_when_explicitly_imported() -> None: def test_confirm_request_works_when_explicitly_imported() -> None: res = _run_in_subprocess(""" - from src.models import ConfirmRequest + from src.api_hooks import ConfirmRequest req = ConfirmRequest(approved=True, script="echo hi") print(req.approved) print(req.script) @@ -71,7 +71,7 @@ def test_pydantic_only_loaded_after_explicit_class_access() -> None: import sys import src.models assert 'pydantic' not in sys.modules, 'pydantic leaked into sys.modules at import time' - from src.models import GenerateRequest + from src.api_hooks import GenerateRequest print('pydantic' in sys.modules) print(GenerateRequest.__bases__[0].__name__) print(GenerateRequest.__bases__[0].__module__) @@ -85,7 +85,7 @@ def test_pydantic_only_loaded_after_explicit_class_access() -> None: def test_proxy_caches_real_class_for_repeated_access() -> None: res = _run_in_subprocess(""" - from src.models import GenerateRequest + from src.api_hooks import GenerateRequest cls1 = GenerateRequest cls2 = GenerateRequest print(cls1 is cls2) @@ -96,7 +96,7 @@ def test_proxy_caches_real_class_for_repeated_access() -> None: def test_generate_request_validation_rejects_missing_prompt() -> None: res = _run_in_subprocess(""" - from src.models import GenerateRequest + from src.api_hooks import GenerateRequest try: GenerateRequest() print("NO_RAISE") diff --git a/tests/test_project_switch_persona_preset.py b/tests/test_project_switch_persona_preset.py index d7233c66..b950055f 100644 --- a/tests/test_project_switch_persona_preset.py +++ b/tests/test_project_switch_persona_preset.py @@ -296,7 +296,7 @@ def test_api_generate_blocked_while_stale(tmp_path, monkeypatch): assert ctrl.is_project_stale() from fastapi import HTTPException from src.app_controller import _api_generate - from src.models import GenerateRequest + from src.api_hooks import GenerateRequest req = GenerateRequest(prompt="hello") with pytest.raises(HTTPException) as exc_info: _api_generate(ctrl, req)