Files
govoplan-core/tests/test_information_governance.py
T
zemion f1a5be2a93
Module Package Release / publish-packages (push) Successful in 12s
Release v0.1.16
2026-08-05 19:53:46 +02:00

69 lines
2.2 KiB
Python

from __future__ import annotations
import unittest
from govoplan_core.core.information_governance import (
InformationGovernanceDeclarationError,
InformationGovernanceDimension,
ModuleInformationGovernance,
information_governance_from_mapping,
information_governance_maturity_issues,
)
class InformationGovernanceTests(unittest.TestCase):
def test_default_applies_contract_without_claiming_enforcement(self) -> None:
declaration = ModuleInformationGovernance()
self.assertTrue(declaration.current_authorization_for_historical_reads)
self.assertEqual(
{"contract_only"},
{item.adoption for item in declaration.dimensions.values()},
)
self.assertEqual("1", declaration.to_dict()["contract_version"])
def test_enforced_adoption_requires_evidence(self) -> None:
with self.assertRaisesRegex(
InformationGovernanceDeclarationError,
"requires evidence",
):
InformationGovernanceDimension(adoption="enforced")
with self.assertRaisesRegex(
InformationGovernanceDeclarationError,
"covered object types",
):
InformationGovernanceDimension(
adoption="enforced",
evidence=("tests/test_information_governance.py",),
)
def test_catalog_shape_round_trips(self) -> None:
declaration = ModuleInformationGovernance()
self.assertEqual(
declaration,
information_governance_from_mapping(declaration.to_dict()),
)
def test_reference_ready_rejects_unproved_dimensions(self) -> None:
issues = information_governance_maturity_issues(
ModuleInformationGovernance(),
maturity="reference_ready",
)
self.assertEqual(1, len(issues))
self.assertIn("temporal_browsing", issues[0])
self.assertIn("purpose_aware_access", issues[0])
self.assertEqual(
(),
information_governance_maturity_issues(
ModuleInformationGovernance(),
maturity="vertical_slice",
),
)
if __name__ == "__main__":
unittest.main()