diff --git a/tests/condition/parsing/test_calico_parser.py b/tests/condition/parsing/test_calico_parser.py index 563b7394e..f8ca9e557 100644 --- a/tests/condition/parsing/test_calico_parser.py +++ b/tests/condition/parsing/test_calico_parser.py @@ -40,6 +40,27 @@ def _workbook(rows: List[List[object]]) -> BytesIO: return buffer +def test_calico_parser_drops_na_sentinel_covering_rows(): + # Arrange -- Calico writes the literal string "N/A" for a placeholder row + # (no roof-covering record captured), not an empty cell. + workbook = _workbook( + [ + [443, "HOUSE", "31 Venice Avenue", "Roof Covering", "Concrete Tiles", + date(1998, 4, 1), 55, 36], + [438, "FLAT", "137 Brownhill Avenue", "Roof Covering", "N/A", + date(2000, 4, 1), 0, 973], + ] + ) + parser = CalicoParser(FakeUprnLookup({"443": 100093305101, "438": 100093388053})) + + # Act + properties = parser.parse(workbook) + + # Assert + references = [asset.asset_reference for prop in properties for asset in prop.assets] + assert references == [443] + + def test_calico_parser_drops_rows_with_no_covering_type(): # Arrange workbook = _workbook(