⚠ **뿌리** — `tmp/` 는 창 사이에 안 건너감(실측 확인: 상대 창이 놓은 `tmp/_sync_probe.txt` 가 시간을 두고 두 번 봐도 안 보임). 그래서 **정본(등록부 스키마)만 건너가고 그것을 읽는 시험은 안 건너가** 오늘 두 번, 같은 시험이 **연 창은 통과·받은 창은 실패**가 됐음. - `tmp/tests/*` 를 `resources/tester/` 로 **복사**(127 파일). 내용은 **한 줄도 안 고침** - `tmp/tests` 는 **남겨 둠** — 되돌릴 자리(사용자 지시) - 실행: `./venv/Scripts/python.exe -m pytest resources/tester/ -q` 옮기기 전과 **같은 수**: 617 통과 / 22 건너뜀 / 실패 0 ⇒ 이제 시험·예외·까닭이 **정본과 함께** 움직임. 오늘 세운 「예외는 정본 스키마에」와 짝임. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
29 lines
1.3 KiB
Python
29 lines
1.3 KiB
Python
"""서버가 뜨는지 — `main` 을 들여와 라우터 모듈이 전부 import 되는지 본다.
|
|
|
|
왜 (2026-09-06) — 재수출이 사라진 이름을 다른 라우터가 옛 자리에서 들여오고 있어
|
|
**서버가 아예 안 뜨는** 상태로 커밋됐다(`B06_Section_Router_Confirm` →
|
|
`B06_Section_Router._compute_default_designs`). 시험 390 건이 다 통과했는데도 못 잡았다 —
|
|
그 경로를 아무도 import 하지 않았기 때문이다. 여기서 한 번에 잡는다.
|
|
|
|
`main` 을 들여오는 것만으로 27개 라우터가 전부 import 되므로, 이름이 어긋나면 즉시 터진다.
|
|
"""
|
|
|
|
import importlib
|
|
|
|
|
|
def test_main_을_들여올_수_있다():
|
|
"""import 만 한다 — 서버를 띄우지도, DB 에 붙지도 않는다."""
|
|
module = importlib.import_module("main")
|
|
assert getattr(module, "app", None) is not None
|
|
|
|
|
|
def test_라우터가_전부_붙어_있다():
|
|
module = importlib.import_module("main")
|
|
paths = {route.path for route in module.app.routes}
|
|
# 각 화면에서 하나씩 — 라우터 한 벌이 통째로 빠지면 걸린다.
|
|
for path in (
|
|
"/api/projects/{project_id}/routes/{route_id}/corridor",
|
|
"/api/projects/{project_id}/sections/{route_id}/detail",
|
|
):
|
|
assert path in paths, f"라우터 경로가 없습니다: {path}"
|