Private
Public Access
0
0
Commit Graph

2 Commits

Author SHA1 Message Date
ed 9651514c85 fix(tests): update consumer sites to import Pydantic proxies from src.api_hooks
Per Tier 1 review of post_module_taxonomy_de_cruft_20260627 (the
commit 6b0668f1 + aa80bc13 work moved GenerateRequest +
ConfirmRequest to src.api_hooks.py and removed the lazy __getattr__
proxy for them in src/models.py). The TRACK_COMPLETION's test
verification missed the 5 sites in test_models_no_top_level_pydantic.py
+ 1 site in test_project_switch_persona_preset.py that still did
'from src.models import GenerateRequest/ConfirmRequest' after the
move.

This commit:
 - tests/test_models_no_top_level_pydantic.py: 5 sites updated
   (lines 49, 60, 74, 88, 99) from
     'from src.models import GenerateRequest/ConfirmRequest'
   to
     'from src.api_hooks import GenerateRequest/ConfirmRequest'
 - tests/test_project_switch_persona_preset.py: 1 site updated
   (line 299) same change

After this commit:
 - All 'from src.models import GenerateRequest/ConfirmRequest'
   references in tests/ are gone (vc10 confirmed)
 - tests/test_models_no_top_level_pydantic.py tests are now functional
   (they error only on the live_gui session fixture setup, which is
   a pre-existing test infrastructure issue documented in the
   TRACK_COMPLETION's Known Issues section; the test bodies themselves
   are correct and will run once the live_gui fixture is fixed)
 - The 2 test files now import from the new home of the Pydantic
   proxies (src.api_hooks)

A direct subprocess verification (bypassing the live_gui fixture)
confirms the imports work:
 uv run python scripts/tier2/artifacts/post_module_taxonomy_de_cruft_20260627/verify_pydantic_test.py
 # Output:
 #   pydantic in sys.modules: False
 #   src.models imported OK
 #   GenerateRequest: <class 'src.api_hooks.GenerateRequest'>
 #   ConfirmRequest: <class 'src.api_hooks.ConfirmRequest'>
2026-06-26 20:04:00 -04:00
ed 01ddf9f163 refactor(models): remove top-level pydantic import; lazy pydantic via PEP 562 __getattr__
Sub-track 2A of startup_speedup_20260606: clears 1 of 61 main-thread audit violations (pydantic in src/models.py).

Removed top-level 'from pydantic import BaseModel' (line 50) and the two static class definitions (GenerateRequest, ConfirmRequest). Replaced with PEP 562 module-level __getattr__ that materializes the pydantic classes on first access via pydantic.create_model() + _require_warmed('pydantic').

Pattern matches the lazy-proxy convention from sub-tracks 5A (command_palette), 5B (theme_nerv), 5C (markdown_table), 5D (gui_2 dead imports).

Result:
- pydantic NOT in sys.modules after 'import src.models' (verified via subprocess test)
- GenerateRequest and ConfirmRequest are accessible via 'from src.models import X' (proxy triggers pydantic import + caches class in globals())
- Pydantic validation works: GenerateRequest() raises ValidationError on missing 'prompt'
- Audit script: 60 violations (was 61)
- Existing test_project_switch_persona_preset.py: 8/9 pass; the 1 failure is the pre-existing ui_global_preset_name issue (unrelated)

Files changed:
- src/models.py: removed 1 import, 2 class defs; added 2 factory fns + 1 __getattr__
- tests/test_models_no_top_level_pydantic.py: new (7 tests; all pass)

Per user instruction, all implementation work is performed by the Tier 2 tech lead directly. The 'sub-track 2A' naming follows the sub-track 2 (audit violations) parent in the track plan.
2026-06-07 10:01:40 -04:00