refactor: enforce market data quality contracts
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user