feat(cadfs): expand selector provenance coverage
This commit is contained in:
@@ -3,7 +3,9 @@ from __future__ import annotations
|
||||
import json, tempfile, unittest
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from pathlib import Path
|
||||
from cadfs_to_cdsl.reports import write_json
|
||||
from cadfs_to_cdsl.dataset import Sample
|
||||
from cadfs_to_cdsl.operation_registry import build_operation_registry
|
||||
from cadfs_to_cdsl.reports import generate_markdown_report, write_json
|
||||
|
||||
|
||||
class ReportTests(unittest.TestCase):
|
||||
@@ -17,5 +19,36 @@ class ReportTests(unittest.TestCase):
|
||||
self.assertIn(payload["index"], range(64))
|
||||
self.assertEqual(list(path.parent.glob(".summary.json.*.tmp")), [])
|
||||
|
||||
def test_operation_registry_distinguishes_absent_roadmap_work_items(self):
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
root = Path(temporary)
|
||||
source = root / "00000001.txt"
|
||||
source.write_text(
|
||||
'FeatureScript 1511; export const f = defineFeature(function(context, id, definition) {'
|
||||
' extrude(context, id + "F1", {"depth": 1 * mm}); });',
|
||||
encoding="utf-8",
|
||||
)
|
||||
registry = build_operation_registry([Sample("00000001", files={"featurescript": str(source)})])
|
||||
|
||||
self.assertEqual(registry["schema"], "cadfs_to_cdsl.operation_registry.v1")
|
||||
self.assertEqual(registry["operations"]["extrude"]["feature_count"], 1)
|
||||
self.assertEqual(registry["operations"]["transform"]["state"], "not_observed_in_current_source")
|
||||
self.assertEqual(registry["operations"]["thicken"]["feature_count"], 0)
|
||||
|
||||
def test_markdown_report_uses_source_registry_instead_of_static_operation_claims(self):
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
output = Path(temporary)
|
||||
write_json(output / "operation_registry.json", {
|
||||
"operations": {
|
||||
"transform": {"roadmap_work_item": True, "state": "observed"},
|
||||
"thicken": {"roadmap_work_item": True, "state": "not_observed_in_current_source"},
|
||||
},
|
||||
})
|
||||
report = generate_markdown_report(output, [])
|
||||
text = report.read_text(encoding="utf-8")
|
||||
|
||||
self.assertIn("thicken", text)
|
||||
self.assertNotIn("draft, thicken, split", text)
|
||||
|
||||
|
||||
if __name__ == "__main__": unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user