설계 개편

This commit is contained in:
DongHyeonka
2026-07-24 16:31:12 +09:00
parent f43e909162
commit 8daa568746
70 changed files with 6554 additions and 956 deletions
+43
View File
@@ -0,0 +1,43 @@
from __future__ import annotations
import json
import tempfile
import unittest
from copy import deepcopy
from pathlib import Path
from techviz.batch_audit import audit_batch, discover_specs
ROOT = Path(__file__).resolve().parents[1]
class BatchAuditTests(unittest.TestCase):
def test_runtime_profiles_do_not_collapse(self) -> None:
paths = discover_specs(ROOT / "examples/runtime-profiles")
audits, findings = audit_batch(paths)
self.assertEqual(len(audits), 10)
self.assertFalse(any(item.code == "batch-template-collapse" for item in findings), findings)
def test_repeated_template_is_rejected(self) -> None:
source = json.loads(
(ROOT / "examples/runtime-profiles/10-comparison/spec.json").read_text(encoding="utf-8")
)
with tempfile.TemporaryDirectory() as tmp:
root = Path(tmp)
for index in range(6):
data = deepcopy(source)
data["id"] = f"copy-{index}"
folder = root / f"item-{index}"
folder.mkdir()
(folder / "spec.json").write_text(
json.dumps(data, ensure_ascii=False, indent=2) + "\n",
encoding="utf-8",
)
audits, findings = audit_batch(discover_specs(root))
self.assertEqual(len(audits), 6)
self.assertTrue(any(item.code == "batch-template-collapse" and item.severity == "error" for item in findings), findings)
if __name__ == "__main__":
unittest.main()