Files
Aislo/resources/tester/test_171_1_manual_input_label.py
T

53 lines
2.2 KiB
Python

"""171-1 「손입력 · 손 입력 · 손 줄」 → 「수기 입력 · 수기 줄」 화면 글 — 소스 시험.
화면 글(따옴표 안)만 바꿈 · 저장 키(`{손: 수}` · 수량출처 「손」 · 표 `손` 깃) · 주석 · 손료는 그대로.
"""
import re
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
SPOTS = {
"A00_Common/design/design_structure_ford_calc.ts": ["설계유량 없음 — 수기 입력"],
"B08_Quantity/B08_Quantity_UI_Material.ts": ["2공구 엑셀 수기 입력값과 다름"],
"B09_Estimation/B09_Estimation_Calc_Bill.ts": ['"수기 줄 — 연결 없음(우클릭 [연결])"'],
"B09_Estimation/B09_Estimation_Calc_Bill.py": ['"수기 줄 — 연결 없음(우클릭 [연결])"'],
"B09_Estimation/B09_Estimation_Sangeun.py": ['"수기 줄" if'],
"B09_Estimation/B09_Estimation_UI_Tabs_Base.ts": ["견적 단가 = 수기 입력"],
"B09_Estimation/B09_Estimation_UI_Tabs_Total.ts": ['"수기 입력"', '"수기 입력 = 안전관리비'],
"ui_template/ui_template_locale_b2.ts": [
"수량 원천: 수기 입력(직접비)",
"수량 원천: 수기 입력 공종",
],
}
# 따옴표 안 화면 글에 남은 옛 이름(주석 · 문서 글 빼고)
OLD = re.compile(r"[\"'`][^\"'`\n]*(손 ?입력|손 줄|손값)")
NOTE = re.compile(r'"""[\s\S]*?"""|/\*[\s\S]*?\*/|^\s*(//|#).*$', re.M)
def _text(rel: str) -> str:
return (ROOT / rel).read_text(encoding="utf-8")
def test_새_이름_자리():
for rel, wants in SPOTS.items():
src = _text(rel)
for w in wants:
assert w in src, f"{rel}: {w}"
def test_화면_글에_옛_이름_없음():
for rel in SPOTS:
for line in NOTE.sub("", _text(rel)).splitlines():
assert not OLD.search(line), f"{rel}: {line.strip()}"
def test_저장_키는_그대로():
calc = _text("M02_MasterTemplete/M02_MasterTemplete_Labor_Calc.ts")
assert 'export type QtySource = "손" | "칸" | "없음";' in calc
assert "export type Qty = { 손: number } | null;" in calc
assert "손?: boolean;" in _text("ui_template/sheet/ui_template_sheet_types.ts")
assert "손 줄 after" in _text("B09_Estimation/B09_Estimation_Calc_Bill.ts") # 주석 그대로