test(840-5): 앞선 실패 넷 가름 — 모두 낡은 시험(코드 · 자료 흠 없음) · 지금 뜻에 맞춤

- test_813_2 · test_713_3: 816-3 체인톱 GF000337 · 822-2 GC001196~1199 · 822-2b GC001200 · 1201 = 기계경비식 7 이 일부러 더해짐 → 로직 1,513 → 1,520 · 부품 기계경비식 9 → 16(표지 73 → 80) · 그 가운데 822-2 · 822-2b 여섯이 8 절 묶음에 들어 묶음 328 → 334
- test_719_1: 811-1(4673fd89a · SC 안 SK = 참조 한 행 · 안 펼침)부터 SK 를 고치면 SC 서고 사본 원본판이 바뀌는 것이 맞음(사본 [업데이트] 대상) — 옛 740-1 「원본판 그대로」 단언을 「바뀜」 으로
- test_796_2e: 836-2(7311d911e) 개인 층 자동 따라옴부터 연결 기초는 [재생성] 누르기 전에도 원본 바뀜을 따라감 — 「누르기 전 = 그대로」 단언을 「따라옴」 으로 · 끊음 = 안 따라감은 그대로
- 깨진 시점은 옛 판을 tmp 에 풀어 같은 시험으로 가름(719-1 = 811-1 앞 통과 · 뒤 실패 · 796-2e = 836-2 앞 통과 · 뒤 실패)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-15 17:03:43 +09:00
co-authored by Claude Opus 5.5
parent 0b672ac9d8
commit 721ef23686
4 changed files with 14 additions and 9 deletions
+2 -1
View File
@@ -19,7 +19,8 @@ def test_목록_줄_수_그대로_덧칸_다_있음() -> None:
def test_묶음_작업량_부르기() -> None:
more = store_list.extras()
# 한 절에 로직 둘 넘음(조사 12-B ㉯ 323 → 713-4 합침 · 지움 뒤 307 → 782 건설 기초 335 → 794-2b 3-2-1 둘 337 → 813-2 작업량당 기계경비 6 지움 328)
assert sum(1 for v in more.values() if v["묶음"]) == 328
# → 822-2 · 822-2b 새 기계경비식 GC001196~1201 여섯이 8 절(건설기계) 묶음에 듦 334
assert sum(1 for v in more.values() if v["묶음"]) == 334
work = {k for k, v in more.items() if v["작업량"]}
assert len(work) == 65 # 27 − 터파기 작업량 6(713-4 · 단가 로직 안에 품음) + 782 시공능력 44
assert more["GF000098"]["부모"] == ["GF000099"] # 측구터파기 작업량 → 단가 로직 밑
+4 -2
View File
@@ -119,10 +119,12 @@ def test_B09_서고_사본_값_같음_원본판(world, tmp_path):
assert library.source_version(built) == mark # 다시 모아도 같은 판
again = library.import_copy(root, "precombo", "personal", "7/42", sc)
assert again == {"폴더": made["폴더"], "만듦": False}
with store.at(world["personal"]): # 740-1 — SK 고쳐도 SC 는 펼친 사본이라 원본판 그대로
with store.at(
world["personal"]
): # 811-1 — SC 안 SK = 참조 한 행(안 펼침) → SK 고치면 원본판 바뀜 = 사본 [업데이트] 대상
now = store.read("sangeun", ref["ref"]["키"])
store.write("sangeun", ref["ref"]["키"], now["판"], {**now["문서"], "덮개": {}})
assert library.source_version(library._build("precombo", "personal", "7/42", sc)[0]) == mark
assert library.source_version(library._build("precombo", "personal", "7/42", sc)[0]) != mark
def test_SK_없는_사본_그대로():
+2 -2
View File
@@ -71,11 +71,11 @@ def test_unlink_keeps_amount_and_freezes_rows(made):
def test_connected_follows_original_on_regen_cut_does_not(made, monkeypatch):
"""①·② 원본 바뀜 — 연결 = [재생성] 에서 따라감 · 끊음 = [재생성] 도 안 따라감."""
"""①·② 원본 바뀜 — 연결 = 따라감(836-2 개인 층 = 자동 · [재생성] 도) · 끊음 = [재생성] 도 안 따라감."""
me, key = made
was = _sum(me, _doc(me, key))
_fake(monkeypatch, [_changed(_live().logic(BASIC))]) # 호표 0 수량 × 2 (원본 바뀜)
assert _sum(me, _doc(me, key)) == was # 누르기 전 = 그대로(자동 갱신 없음)
assert _sum(me, _doc(me, key)) > was # 836-2 개인 층 = 누르기 전에도 자동 따라옴(옛 「그대로」)
with store.at(me):
got = skc.preview(_doc(me, key), skc.REGEN)
assert got["후"]["계"] > was and "끊은기초" not in got # 연결 = 원본 따라감
+6 -4
View File
@@ -1,6 +1,6 @@
"""813-2 지킴 — 보조 문서 부품 표지 · 작업량당 기계경비 6 지움 · 목록에서 뺌 · 기계 → 부품.
① 표지 = 보조 문서 83 − 지움 6 − 단가산출로 남김 4 = 73(기계경비식 9 · 작업량 틀 60 · 계수식 4) · 옛 로직 줄 = 수식 문서
① 표지 = 보조 문서 83 − 지움 6 − 단가산출로 남김 4 = 73(기계경비식 9 · 작업량 틀 60 · 계수식 4) → 뒤에 기계경비식 7 더함(816-3 체인톱 GF000337 · 822-2 GC001196~1199 · 822-2b GC001200 · 1201) = 80 · 옛 로직 줄 = 수식 문서
② 지움 6 = 수식 문서 · 옛 로직 · 키대장 「키」 에 없음 · 키대장 「폐기」 에 있음 · 부르는 곳 0 · 이름 꼬리 4 = 원문 제목
③ 목록(M01 `/logics` · M02 `/logic-lib/logics`)에서 뺌 · 키로 열기 · 부르기는 그대로(끊긴 단가산출 연결 0)
④ 기계 → 부품 — 굴착기 = 기계경비식 GC000267(기계 9) + 작업량 틀 · 0.7㎥ 원문번호 → 틀 문서(규격 열쇠)
@@ -45,7 +45,7 @@ def _rows() -> dict[str, dict]:
def test_표지_73_갈래별_수_로직_문서_같음():
tags = parts.parts()
assert Counter(t["갈래"] for t in tags.values()) == {
"기계경비식": 9,
"기계경비식": 16, # 813-2 9 + 816-3 체인톱 1 + 822-2 넷 + 822-2b 둘
"작업량 틀": 60,
"계수식": 4,
}
@@ -63,7 +63,9 @@ def test_지움_6_이름_4():
led = json.loads((store.FOLDER / "_키대장.json").read_text(encoding="utf-8"))
for k in GONE:
assert k not in docs and k not in rows and k not in led["키"] and k in led["폐기"]
assert len(docs) == len(rows) == 1513
assert (
len(docs) == len(rows) == 1520
) # 813-2 뒤 1,513 + 새 기계경비식 7(816-3 · 822-2 · 822-2b)
for k, name in NAMES.items():
assert docs[k]["이름"] == rows[k]["이름"] == name and "부품" not in docs[k]
@@ -72,7 +74,7 @@ def test_목록에서_뺌_키로_열림_부르기_그대로():
tags = parts.parts()
m01 = {x["키"] for x in m01_router.get_logics()["logics"]}
m02 = {x["키"] for x in combos.get_logics()["logics"]}
assert not (m01 | m02) & set(tags) and len(m01) == len(m02) == 1513 - 73
assert not (m01 | m02) & set(tags) and len(m01) == len(m02) == 1520 - 80
for k in ("GC000267", "GF000088", "GC001191"):
assert doc_store.read(k)["문서"]["부품"] == tags[k]
assert m01_router.get_logic(k)["logic"]["키"] == k