diff --git a/resources/tester/test_717_4_sangeun_pick.py b/resources/tester/test_717_4_sangeun_pick.py index dad482a19..37cde66d8 100644 --- a/resources/tester/test_717_4_sangeun_pick.py +++ b/resources/tester/test_717_4_sangeun_pick.py @@ -52,7 +52,7 @@ def _sk(folder, name): def test_list_amount_and_labor_line_holds_upper_sk(world): # noqa: F811 - """층 목록 SK 줄에 1 단위 `기준금액` · 개인 일위대가 줄이 회사 SK 를 참조 = SK 1 단위 × 수량.""" + """층 목록 SK 줄에 1 단위 `기준금액` · 일위대가 안 줄 수량은 저장 안 함(723-1) · 금액 = 쓰는 자리 수량 × SK 1 단위.""" from M02_MasterTemplete import M02_Labor_Doc as labor sk = _sk(world["company"], "회사 단가산출") @@ -71,7 +71,17 @@ def test_list_amount_and_labor_line_holds_upper_sk(world): # noqa: F811 "담은로직": [{"참조": {**COMPANY, "키": sk}, "수량": {"손": 3}}], }, )["이름"] - saved = store.read("precombo", sc)["문서"]["담은로직"][0]["참조"] - got = labor.calc({"담은로직": [{"참조": {**MINE, "키": sc}, "수량": {"손": 1}}]}, {}) - assert saved == {**COMPANY, "키": sk} - assert got["반영합"]["계"] == pytest.approx(one * 3, abs=1) + line = store.read("precombo", sc)["문서"]["담은로직"][0] + saved, inner = line["참조"], [line["수량"]] + outer = {"담은로직": [{"참조": {**MINE, "키": sc}, "수량": {"손": 1}}]} + got = labor.calc(outer, {}) + fed = labor.calc(outer, {f"{refs.ref_id({**MINE, '키': sc})}#0": 3}) + direct = labor.calc({"담은로직": [{"참조": {**COMPANY, "키": sk}, "수량": {"손": 3}}]}, {}) + assert saved == {**COMPANY, "키": sk} # 참조 = 회사 SK 그대로 + # 723-1 · 내역 17-1 — 일위대가 안 줄 수량은 저장 안 함(null) · 쓰는 자리(바깥 문서)에서 들어옴 + assert inner == [None] + assert got["반영합"]["계"] == 0 # 안 줄 수량 없음 = 금액 빠짐 + assert direct["반영합"]["계"] == pytest.approx( + one * 3, abs=1 + ) # 바깥이 SK 를 손 3 으로 바로 참조 + assert fed["반영합"]["계"] == pytest.approx(one * 3, abs=1) # 바깥이 안 줄 알약에 3 을 이음