"""Native overlay: leftover app/entry modules resolve from src.""" from __future__ import annotations from pathlib import Path import backend.config as config import backend.main as main import backend.middleware.auth as middleware_auth import backend.pipeline_worker as pipeline_worker import backend.routers.admin as routers_admin import backend.routers.auth as routers_auth import backend.routers.contact as routers_contact import backend.routers.deps as routers_deps import backend.routers.feedback as routers_feedback import backend.routers.impedance as routers_impedance import backend.routers.pipeline as routers_pipeline import backend.routers.projects as routers_projects import backend.routers.reports as routers_reports import backend.routers.survey as routers_survey import backend.services.admin_settings as admin_settings import backend.services.event_bridge as event_bridge import backend.services.job_runner as job_runner import backend.services.projects as projects def _src(mod) -> Path: return Path(mod.__file__).resolve() def _overlay_text(mod) -> str: return _src(mod).read_text(encoding="utf-8")[:500] def test_leftover_app_modules_load_from_src(): root = Path(__file__).resolve().parents[1] be = (root / "periscope" / "src" / "backend").resolve() for mod, rel in ( (main, "main.py"), (config, "config.py"), (pipeline_worker, "pipeline_worker.py"), (middleware_auth, "middleware/auth.py"), (job_runner, "services/job_runner.py"), (event_bridge, "services/event_bridge.py"), (projects, "services/projects.py"), (admin_settings, "services/admin_settings.py"), (routers_admin, "routers/admin.py"), (routers_contact, "routers/contact.py"), (routers_deps, "routers/deps.py"), (routers_feedback, "routers/feedback.py"), (routers_pipeline, "routers/pipeline.py"), (routers_projects, "routers/projects.py"), (routers_reports, "routers/reports.py"), (routers_survey, "routers/survey.py"), ): path = _src(mod) assert path == be / rel, path assert "Native Periscope overlay" in _overlay_text(mod) def test_native_auth_and_impedance_routers_untouched(): root = Path(__file__).resolve().parents[1] be = (root / "periscope" / "src" / "backend").resolve() assert _src(routers_auth) == be / "routers" / "auth.py" assert _src(routers_impedance) == be / "routers" / "impedance.py" assert "Local Periscope auth endpoints" in _src(routers_auth).read_text(encoding="utf-8")[:200] def test_main_still_exports_fastapi_app(): from fastapi import FastAPI assert isinstance(main.app, FastAPI) assert main.LOCAL_DEV_USER == "local"