"""PLAN 514-4 — 추천 저장본 접근 = 표준 횡단면 「없음」과 config 기본값을 같은 뜻으로. ./venv/Scripts/python.exe -m pytest resources/tester/test_514_4_recommend_standard_default.py -q 전처리 때 표준 없음(None)으로 셈 → B05 · B06 [저장]이 손대지 않은 패널 기본값을 실음 → 화면은 그 저장본을 꺼냄(409 아님 · 셈 0) · 반대 꼴도 · 사용자가 고친 표준은 옛 저장본을 안 끌어옴. """ from __future__ import annotations import copy import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[2] TESTER = Path(__file__).resolve().parent for path in (ROOT, TESTER): if str(path) not in sys.path: sys.path.insert(0, str(path)) from test_224_3_recommend_store import _ask, wired # noqa: E402, F401 — 가짜 세계 fixture from B05_Profile.B05_Profile_Engine_RouteInitial_Store import DEFAULT_MODES # noqa: E402 from config.config_system import STANDARD_CROSS_SECTION # noqa: E402 def _chain_then_screen(wired, before, after) -> list[dict]: # noqa: F811 wired.standard = before for mode in DEFAULT_MODES: _ask(True, mode=mode) count = wired.count wired.standard = after answers = [_ask(False, mode=mode) for mode in DEFAULT_MODES] assert wired.count == count # 접근 = 셈 0 return answers def test_전처리_없음_저장_뒤_기본값이면_꺼냄(wired) -> None: # noqa: F811 answers = _chain_then_screen(wired, None, copy.deepcopy(STANDARD_CROSS_SECTION)) assert all(isinstance(a, dict) and a["stored"] is True for a in answers), answers def test_전처리_기본값_뒤_없음이어도_꺼냄(wired) -> None: # noqa: F811 answers = _chain_then_screen(wired, copy.deepcopy(STANDARD_CROSS_SECTION), None) assert all(isinstance(a, dict) and a["stored"] is True for a in answers), answers def test_고친_표준은_옛_저장본_안_끌어옴(wired) -> None: # noqa: F811 custom = copy.deepcopy(STANDARD_CROSS_SECTION) custom["soil"]["road_width_m"] = 4.0 answers = _chain_then_screen(wired, None, custom) assert all(getattr(a, "status_code", None) == 409 for a in answers), answers