Initial import NDC_1C
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
import runpy
|
||||
|
||||
from canonical_layer.store import CanonicalStore
|
||||
|
||||
|
||||
def _load_validation_module() -> dict[str, object]:
|
||||
script_path = Path(__file__).resolve().parents[1] / "scripts" / "run_validation_accounting_analytics.py"
|
||||
return runpy.run_path(str(script_path), run_name="validation_mod")
|
||||
|
||||
|
||||
def test_ingestion_handles_unknown_ids_and_deduplicates(tmp_path: Path) -> None:
|
||||
module = _load_validation_module()
|
||||
ingest_slice_to_store = module["ingest_slice_to_store"]
|
||||
|
||||
store = CanonicalStore(f"sqlite:///{(tmp_path / 'validation_ingest.db').as_posix()}")
|
||||
store.ensure_created()
|
||||
|
||||
payload = {
|
||||
"selected_window_key": "2020-06",
|
||||
"records_exported_total": 3,
|
||||
"links_exported_total": 0,
|
||||
"records_per_entity_set": {"DocumentJournal_Test": 3},
|
||||
"items": [
|
||||
{
|
||||
"source_entity": "DocumentJournal_Test",
|
||||
"source_id": "unknown",
|
||||
"display_name": "A",
|
||||
"attributes": {"Recorder": "rec-1", "LineNumber": 1, "Period": "2020-06-01T00:00:00"},
|
||||
"links": [],
|
||||
},
|
||||
{
|
||||
"source_entity": "DocumentJournal_Test",
|
||||
"source_id": "unknown",
|
||||
"display_name": "A duplicate",
|
||||
"attributes": {"Recorder": "rec-1", "LineNumber": 1, "Period": "2020-06-01T00:00:00"},
|
||||
"links": [],
|
||||
},
|
||||
{
|
||||
"source_entity": "DocumentJournal_Test",
|
||||
"source_id": "unknown",
|
||||
"display_name": "B",
|
||||
"attributes": {"Recorder": "rec-1", "LineNumber": 2, "Period": "2020-06-01T00:00:00"},
|
||||
"links": [],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
result = ingest_slice_to_store(
|
||||
store=store,
|
||||
slice_payload=payload,
|
||||
slice_start="2020-06-01T00:00:00+00:00",
|
||||
slice_end_exclusive="2020-07-01T00:00:00+00:00",
|
||||
)
|
||||
|
||||
assert result["entities_written"] == 2
|
||||
assert result["details"]["items_total_raw"] == 3
|
||||
assert result["details"]["items_after_dedupe"] == 2
|
||||
assert result["details"]["duplicate_rows_skipped"] == 1
|
||||
assert result["details"]["synthetic_ids_assigned"] == 3
|
||||
|
||||
stats = store.store_stats()
|
||||
assert stats["entities_total"] == 2
|
||||
Reference in New Issue
Block a user