⚠ **뿌리** — `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>
68 lines
2.6 KiB
Python
68 lines
2.6 KiB
Python
"""독립 기슭막이 구간값(길이·전/후)이 B06 조정창 키에서 읽히는지 — 2026-08-28 리셋 버그.
|
|
|
|
조정창은 `{role}_revet_length_m` 등에 저장한다(SPAN_OPTION_KEYS). 백엔드가 전용 키
|
|
(`length_m`)만 읽던 동안 조정값이 매번 되돌아왔다.
|
|
"""
|
|
|
|
from B06_Section.B06_Section_Engine_Culvert import _revet_set
|
|
|
|
|
|
def test_panel_span_keys_win():
|
|
"""조정창이 쓴 유출 구간값이 스펙에 그대로 실린다."""
|
|
options = {
|
|
"side": "양쪽",
|
|
"tiers": 1,
|
|
"form": "돌쌓기(메)",
|
|
"length_m": 10,
|
|
"height_m": 2.5,
|
|
"before_m": 5,
|
|
"after_m": 5,
|
|
"outlet_revet_length_m": 10.5,
|
|
"outlet_revet_before_m": 5.5,
|
|
"outlet_revet_after_m": 5,
|
|
}
|
|
spec = _revet_set(options)
|
|
assert spec["outlet"]["revet_length_m"] == 10.5
|
|
assert spec["outlet"]["revet_before_m"] == 5.5
|
|
assert spec["outlet"]["revet_after_m"] == 5
|
|
# 유입은 조정 전이라 폼 값(폴백)을 그대로 쓴다 — 배관과 같은 역할별 독립.
|
|
assert spec["inlet"]["revet_length_m"] == 10
|
|
assert spec["inlet"]["revet_before_m"] == 5
|
|
# 형태·높이는 역할 키가 없으면 폼 한 벌을 공유한다.
|
|
assert spec["outlet"]["revet_form"] == "돌쌓기(메)"
|
|
assert spec["outlet"]["revet_height_m"] == 2.5
|
|
|
|
|
|
def test_legacy_only_options_still_read():
|
|
"""옛 전용 키만 있는 저장분도 그대로 읽힌다(호환)."""
|
|
spec = _revet_set({"form": "찰쌓기", "length_m": 8, "height_m": 2, "before_m": 3, "after_m": 5})
|
|
for role in ("inlet", "outlet"):
|
|
assert spec[role]["revet_length_m"] == 8
|
|
assert spec[role]["revet_before_m"] == 3
|
|
assert spec[role]["revet_after_m"] == 5
|
|
assert spec[role]["revet_form"] == "찰쌓기"
|
|
|
|
|
|
def test_role_keys_only():
|
|
"""B05 폼이 새로 쓰는 역할 키 한 벌만 있어도 양쪽 벽이 선다."""
|
|
spec = _revet_set(
|
|
{
|
|
"side": "좌",
|
|
"inlet_revet_form": "돌쌓기(메)",
|
|
"inlet_revet_length_m": 12,
|
|
"inlet_revet_height_m": 2.5,
|
|
"inlet_revet_before_m": 6,
|
|
"inlet_revet_after_m": 6,
|
|
"outlet_revet_form": "돌쌓기(메)",
|
|
"outlet_revet_length_m": 12,
|
|
"outlet_revet_height_m": 2.5,
|
|
"outlet_revet_before_m": 6,
|
|
"outlet_revet_after_m": 6,
|
|
}
|
|
)
|
|
assert spec["side"] == "좌"
|
|
assert spec["hidden_pipe"] is True
|
|
for role in ("inlet", "outlet"):
|
|
assert spec[role]["revet_length_m"] == 12
|
|
assert spec[role]["revet_height_m"] == 2.5
|