- 횡단 미리보기 요청에 적용 반폭을 실어 보내고 서버가 덮은 반폭을 되돌려 줌 - 파란 선 좌·우 길이 = 그 반폭 (원지반 선 범위와 같은 값) · 적용한 적 없으면 서버 기본값 - 시험 test_b05_routeedit_cross_width.py 추가 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KmELpdXFDRZHhfbGuRhSmL
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""계획노선 편집 창 — **측점 반폭 선 길이**(계획서 22-1) 회귀검증.
|
|
|
|
파란 선 = 우측 패널 「횡단 반폭(m)」 적용값 양쪽. 적용한 적이 없으면 서버 기본값.
|
|
선 길이는 서버가 덮은 반폭(= 횡단 미리보기 원지반 선 범위)을 그대로 쓴다.
|
|
Node 헬퍼(`helper_b05_routeedit_cross_width.cjs`)가 TS 를 트랜스파일해 돌린다.
|
|
"""
|
|
|
|
import json
|
|
import os
|
|
import subprocess
|
|
|
|
import pytest
|
|
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def results():
|
|
proc = subprocess.run(
|
|
["node", os.path.join(HERE, "helper_b05_routeedit_cross_width.cjs")],
|
|
capture_output=True,
|
|
text=True,
|
|
timeout=60,
|
|
)
|
|
assert proc.returncode == 0, proc.stderr
|
|
return json.loads(proc.stdout)
|
|
|
|
|
|
def test_측점을_고르기_전에는_선이_없다(results):
|
|
assert results["before"] is None
|
|
|
|
|
|
def test_적용한_적_없으면_서버_기본값_양쪽(results):
|
|
assert results["empty"]["asked"] is None
|
|
assert results["empty"]["watched"] == {"chainageM": 100, "leftM": 20, "rightM": 20}
|
|
|
|
|
|
def test_적용값이_있으면_그_값_양쪽(results):
|
|
assert results["applied15"]["asked"] == 15
|
|
assert results["applied15"]["watched"] == {"chainageM": 100, "leftM": 15, "rightM": 15}
|
|
|
|
|
|
def test_노선이_여럿이면_최신_노선_값_다른_프로젝트는_무시(results):
|
|
assert results["latestRoute"]["asked"] == 8.5
|
|
assert results["latestRoute"]["watched"]["leftM"] == 8.5
|
|
|
|
|
|
def test_망가진_값은_기본값으로(results):
|
|
assert results["badValue"]["asked"] is None
|
|
assert results["badValue"]["watched"]["rightM"] == 20
|