Files
Aislo/resources/tester/test_revet_span_source.py
eomsangdonandClaude Opus 5 0ef32b5279 chore(tester): 시험을 resources/tester/ 로 옮김 — 창끼리 건너가게
⚠ **뿌리** — `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>
2026-09-09 17:12:30 +09:00

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