fix(datasources): preserve governed CSV originals and fresh detail state
Module Package Release / publish-packages (push) Successful in 12s

Release v0.1.26. Coordinated integrity review: GovOPlaN/govoplan-core#298.
This commit is contained in:
2026-09-08 12:19:38 +02:00
parent 8b8c6c548e
commit 9d067f1bad
20 changed files with 825 additions and 91 deletions
+6
View File
@@ -1,5 +1,7 @@
from __future__ import annotations
from govoplan_core.core.tabular_sources import TabularCsvSource
import unittest
from datetime import timedelta
@@ -345,6 +347,7 @@ class DatasourceLifecycleGovernanceTests(unittest.TestCase):
mode="static",
shape="tabular",
rows=({"id": 1},),
csv_source=TabularCsvSource(text="id\n1\n"),
governance=governance,
),
)
@@ -389,6 +392,7 @@ class DatasourceLifecycleGovernanceTests(unittest.TestCase):
)
)
payload_id = first_row.payload_id
self.assertIsNotNone(first_row.csv_source_)
disposed, evidence_hashes = self.provider.apply_retention(
self.session,
principal("admin", scopes=("datasources:source:admin",)),
@@ -400,6 +404,7 @@ class DatasourceLifecycleGovernanceTests(unittest.TestCase):
self.assertEqual(1, len(evidence_hashes))
self.assertIsNone(self.session.get(DatasourcePayloadRecord, payload_id))
self.assertIsNotNone(first_row.disposed_at)
self.assertIsNone(first_row.csv_source_)
self.assertEqual("disposed", first_row.state)
with self.assertRaises(DatasourceUnavailableError):
self.provider.read_datasource(
@@ -446,6 +451,7 @@ class DatasourceLifecycleGovernanceTests(unittest.TestCase):
mode="static",
shape="tabular",
rows=({"id": 1},),
csv_source=TabularCsvSource(text="id\n1\n"),
governance=DatasourceGovernance(
retention_policy={
"version": "stage-retention-v1",