Files
periscope/tests/test_native_leftover_app_overlay.py
T
michele 6d6e70cec0 Overlay leftover FastAPI entry, routers, and jobs into periscope/src (2.45.0).
Copy main, config, middleware/auth, leftover routers, pipeline_worker,
job_runner, event_bridge, projects, and admin_settings without deleting
dependency copies. Native auth and impedance routers stay as-is.
2026-09-20 17:39:15 +02:00

74 lines
2.7 KiB
Python

"""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"