refactor: enforce market data quality contracts

This commit is contained in:
leefer
2026-07-29 17:34:21 +08:00
parent 7c8b8ca21e
commit 831291c818
8 changed files with 433 additions and 3 deletions
+10
View File
@@ -22,6 +22,7 @@ class GovernanceRegistryTests(unittest.TestCase):
self.pages = load("pages.config.json")
self.api = load("api.config.json")
self.data = load("data-fields.config.json")
self.quality = load("data-quality.config.json")
def test_features_are_unique_and_use_declared_roles(self) -> None:
roles = set(self.features["roles"])
@@ -82,6 +83,15 @@ class GovernanceRegistryTests(unittest.TestCase):
self.assertEqual(dataset["usage"], "blocked")
self.assertEqual(len(ids), len(set(ids)))
def test_every_dataset_has_one_quality_rule_and_known_unit_profile(self) -> None:
dataset_ids = {item["id"] for item in self.data["datasets"]}
rules = self.quality["datasets"]
self.assertEqual(set(rules), dataset_ids)
profiles = set(self.quality["unit_profiles"])
self.assertTrue(
all(str(rule.get("unit_profile") or "none") in profiles for rule in rules.values())
)
if __name__ == "__main__":
unittest.main()