63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
"""411-A B05 평면 오른쪽 횡단 판 — 구조물 · 관을 골라도 그 측점 횡단(요구 252-6) ·
|
|
옮긴 뒤에도 그 측점.
|
|
|
|
TS 셈은 `helper_411_a_cross_structure.cjs`(Node · `_RouteEdit_Cross` 진짜 · 묶음 · 그림 가짜).
|
|
|
|
./venv/Scripts/python.exe -m pytest resources/tester/test_411_a_cross_structure.py -q
|
|
"""
|
|
|
|
import json
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
HELPER = Path(__file__).with_name("helper_411_a_cross_structure.cjs")
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
def got() -> dict:
|
|
run = subprocess.run( # noqa: S603 — 고정 실행 파일
|
|
["node", str(HELPER)],
|
|
capture_output=True,
|
|
text=True,
|
|
encoding="utf-8",
|
|
timeout=120,
|
|
)
|
|
assert run.returncode == 0, run.stderr
|
|
return json.loads(run.stdout)
|
|
|
|
|
|
def test_구조물_고름_그_측점_횡단(got) -> None:
|
|
assert got["structurePick"] == {"station": "45", "foot": "횡단 45", "structure": True}
|
|
|
|
|
|
def test_옮긴_뒤_열쇠로_새_자리(got) -> None:
|
|
assert got["structureMoved"] == {"station": "52", "foot": "횡단 52", "at": 52}
|
|
|
|
|
|
def test_관_고름_그_측점_횡단(got) -> None:
|
|
assert got["pipePick"] == {"station": "80.17", "foot": "횡단 80.17", "structure": True}
|
|
|
|
|
|
def test_평면_마커_풂도_판_비움(got) -> None:
|
|
# 500-1(요구 300) — 고름 풀림 = 오른쪽 판도 비움(옛 409 「판 그대로」 걷음)
|
|
assert got["planRelease"] == {
|
|
"station": "",
|
|
"foot": "측점 눈금을 누르면 그 측점 횡단이 뜹니다.",
|
|
}
|
|
|
|
|
|
def test_일반측점_그대로(got) -> None:
|
|
assert got["gridPick"] == {"station": "20", "foot": "횡단 20", "structure": None}
|
|
|
|
|
|
def test_묶음_전_고름도_열쇠로_붙듦(got) -> None:
|
|
assert got["beforePipeline"]["foot"] == "계산 중…"
|
|
assert got["afterPipeline"] == {"station": "60", "foot": "횡단 60"}
|
|
assert got["latchedMoved"] == {"station": "66", "foot": "횡단 66"}
|
|
|
|
|
|
def test_다른_보기_풂은_판_비움(got) -> None:
|
|
assert got["otherRelease"]["station"] == "" and got["otherRelease"]["watched"] is None
|