Files
codex-bot 585c602000
Verify and deploy Tabularium / verify-and-deploy (push) Successful in 4m6s
Use coordinated docs port with conflict checks and deployment-independent cache keys
2026-10-26 20:20:50 +08:00

43 lines
1.8 KiB
Python

"""Guard cache invalidation against stale documents and needless metadata rebuilds."""
from pathlib import Path
import subprocess
import tempfile
import unittest
from unittest.mock import patch
import ci
class FingerprintTests(unittest.TestCase):
def test_build_inputs_invalidate_but_metadata_and_caches_do_not(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
subprocess.run(["git", "init", "-q", str(root)], check=True)
(root / ".gitignore").write_text(".artifacts/\n**/.next/\n")
doc = root / "content/docs/concept.md"
doc.parent.mkdir(parents=True)
doc.write_text("# Original\n")
package = root / "package.json"
package.write_text('{"private":true}\n')
with patch.object(ci, "ROOT", root):
original = ci.fingerprint()
(root / "README.md").write_text("metadata only\n")
cache = root / "apps/docs/.next/cache/state"
cache.parent.mkdir(parents=True)
cache.write_text("compiler cache\n")
deploy = root / "scripts/deploy.py"
deploy.parent.mkdir(parents=True)
deploy.write_text("# deployment-only configuration\n")
self.assertEqual(original, ci.fingerprint())
doc.write_text("# Updated\n")
self.assertNotEqual(original, ci.fingerprint())
doc.write_text("# Original\n")
package.write_text('{"private":true,"version":"2"}\n')
self.assertNotEqual(original, ci.fingerprint())
package.write_text('{"private":true}\n')
doc.rename(doc.with_name("renamed.md"))
self.assertNotEqual(original, ci.fingerprint())
if __name__ == "__main__":
unittest.main()