feat(560-1): D01 생성 칸 여섯 걷음 · 이름 자동 「<시작 연도> <사업 지역> 노선 계획」 · 임도 종류 필수 풂 · D04 새 임도 이름 연도 한 번

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 20:00:41 +09:00
co-authored by Claude Opus 5.5
parent 6d4964ae55
commit 9ec63ac4f5
6 changed files with 36 additions and 99 deletions
@@ -124,6 +124,8 @@ def test_d01_plan_created(monkeypatch):
assert seen["design_speed_kph"] == 40
asyncio.run(d01.post_plan_project(None, _plan(road_type="work", design_speed_kph=40), ADMIN))
assert seen["design_speed_kph"] == 20 # 작업임도 = 20 만
asyncio.run(d01.post_plan_project(None, _plan(road_type=None), ADMIN))
assert seen["road_type"] is None and seen["design_speed_kph"] == 20 # 560-1 임도 종류 안 받음
with pytest.raises(HTTPException) as e:
asyncio.run(d01.post_plan_project(None, _plan(project_year_end=2025), FOREST))
assert e.value.status_code == 400
+14
View File
@@ -264,6 +264,20 @@ def test_new_mode_creates_road_project(env, monkeypatch):
assert made["company_id"] == 5 and len(env["rows"]) == 5
def test_new_mode_name_year_once(env, monkeypatch):
"""560-1 — 「<시작 연도> <지역> 노선 계획」 이름 = 앞 연도를 그 연도로(두 번 안 붙음)."""
made = {}
async def create_project(**kw):
made.update(kw)
return {"project_id": ROAD_ID}
monkeypatch.setattr(link, "create_project", create_project)
_use(monkeypatch, _assignee(name="2025 홍천 노선 계획"))
_link(mode="new", project_id=None)
assert made["name"] == "2026 홍천 노선 계획"
def _stage2_writes(log):
return [
args
-7
View File
@@ -16,13 +16,6 @@ def _no_hex(path: str) -> None:
assert not re.search(r"#[0-9a-fA-F]{3,8}\b", css), f"{path}: 날 색"
def test_d01_station_label_is_text_part():
ts = _src("D01_PlanRegister/D01_PlanRegister_UI_Page.ts")
assert "style.cssText" not in ts
assert 'createText("", "muted")' in ts
assert 'dataset.station = ""' in ts # 시험 · 촬영이 잡음
def test_d02_parts():
ts = _src("D02_PlanBase/D02_PlanBase_UI_Page.ts")
css = _src("D02_PlanBase/D02_PlanBase_UI_Style.css")