This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user