"""Parse records from the gov EPC bulk export (NDJSON, stringified `document`).""" from __future__ import annotations import json from harness.epc_bulk import is_sap_version, parse_bulk_line def test_parse_bulk_line_unwraps_the_stringified_document() -> None: # Arrange — a bulk record wraps the per-cert payload in a `document` string. inner: dict[str, object] = { "schema_type": "RdSAP-Schema-21.0.1", "sap_version": 10.2, "energy_rating_current": 71, } line: str = json.dumps( {"certificate_number": "0000-1111-2222-3333-4444", "document": json.dumps(inner)} ) # Act parsed = parse_bulk_line(line) # Assert — the cert number and the parsed inner document come back. assert parsed is not None cert_number, document = parsed assert cert_number == "0000-1111-2222-3333-4444" assert document["schema_type"] == "RdSAP-Schema-21.0.1" assert document["energy_rating_current"] == 71 def test_parse_bulk_line_ignores_blank_lines() -> None: # Arrange / Act / Assert — trailing/blank NDJSON lines are skipped. assert parse_bulk_line("") is None assert parse_bulk_line(" \n") is None def test_is_sap_version_matches_regardless_of_numeric_or_string_form() -> None: # Arrange / Act / Assert — the export carries sap_version as a number. assert is_sap_version({"sap_version": 10.2}, "10.2") is True assert is_sap_version({"sap_version": "10.2"}, "10.2") is True assert is_sap_version({"sap_version": 10.1}, "10.2") is False assert is_sap_version({}, "10.2") is False