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.
74 lines
2.7 KiB
Python
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"
|