diff --git a/scripts/tests/test_review_scope.py b/scripts/tests/test_review_scope.py index c7f0994..4c6e2a2 100644 --- a/scripts/tests/test_review_scope.py +++ b/scripts/tests/test_review_scope.py @@ -19,13 +19,22 @@ import tempfile import unittest ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +# 어느 프로젝트를 쓰든 상관없다 — 재는 것은 「비교를 돌렸나」이지 그 기록의 내용이 아니다. +# `verify-pipeline.py:172` 의 `FORBIDDEN_LITERAL` 이 `scripts/` 아래 텍스트에서 옛 저장소 +# 이름을 찾는데, **그 이름의 `docs/` 프로젝트를 가리키는 것과 가리지 못한다.** 글자를 +# 쪼개 피하지 않고 다른 프로젝트를 쓴다 — 피하는 것은 검사기가 물으려던 것에 답하는 게 아니다. +PROJECT = "TechLog" RECORD = os.path.join( - "docs", "document-haness", "tech-log-studio", "pipeline-gate-exit-codes", - "case", "case-exit-code-read-behind-a-pipe.md") + "docs", PROJECT, "tech-log-studio", "addresses-frozen-at-publish-time", + "case", "case-a-link-that-pointed-at-itself.md") +# 윤문 전 사본에만 넣을 유보 표현. `HEDGES` 의 「보인다」다 — +# 이것이 사라지는 것이 `hedgesDropped` 이고, 그 자리가 이 묶음의 **막는** 경고다 +ASSERTED = "눌러도 아무 일이 없었다." +HEDGED = "눌러도 아무 일이 없었던 것으로 보인다." def _package(out: str, before: str | None) -> subprocess.CompletedProcess: - cmd = [sys.executable, "scripts/review-package.py", "document-haness", + cmd = [sys.executable, "scripts/review-package.py", PROJECT, "--record", RECORD, "-o", out] if before: cmd += ["--before", before] @@ -41,9 +50,8 @@ class PreservationScopeTest(unittest.TestCase): # 윤문 전 사본. 한 문장만 다르게 둔다 — 비교가 실제로 돌아야 한다 self.before = os.path.join(self.tmp, "before.md") src = open(os.path.join(ROOT, RECORD), encoding="utf-8").read() - open(self.before, "w", encoding="utf-8").write( - src.replace("열넷이 전부 `exit=0` 이었다.", - "열넷이 전부 `exit=0` 이었을 수도 있다.")) + self.assertIn(ASSERTED, src, "고정문이 기록에서 사라졌다 — 픽스처를 다시 짠다") + open(self.before, "w", encoding="utf-8").write(src.replace(ASSERTED, HEDGED)) def test_without_before_the_package_says_it_did_not_look(self): out = os.path.join(self.tmp, "nb.json") @@ -62,11 +70,17 @@ class PreservationScopeTest(unittest.TestCase): out = os.path.join(self.tmp, "wb.json") r = _package(out, self.before) self.assertEqual(0, r.returncode, r.stderr) - pres = json.load(open(out, encoding="utf-8"))["preservation"] + pkg = json.load(open(out, encoding="utf-8")) + pres = pkg["preservation"] self.assertTrue(pres["available"]) self.assertNotIn("reason", pres) # 안 돈 이유가 있을 리 없다 self.assertTrue(pres["before"]) self.assertEqual(64, len(pres["beforeSha256"])) + # **`available: true` 만으로는 비교가 무언가를 봤다는 뜻이 아니다.** 픽스처가 + # 조용히 같아지면 이 시험은 초록인 채로 아무것도 안 재게 된다 — 양성 대조다 + self.assertTrue(pkg["warnings"], "유보가 사라진 것을 못 잡았다 — 픽스처를 다시 짠다") + self.assertTrue(any(w["id"] == "유보 감소" for w in pkg["warnings"]), + [w["id"] for w in pkg["warnings"]]) def test_the_two_packages_print_different_lines(self): """**같은 문구가 나오면 고친 것이 아니다.**"""