From ec4959b58a311ea23cfe16463782715e76f88000 Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 11 Mar 2026 19:08:48 +0000 Subject: [PATCH] modifying tests for prepared epc --- etl/epc/Record.py | 2 +- etl/epc/tests/test_epcrecord.py | 116 ++++++++++++++++---------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/etl/epc/Record.py b/etl/epc/Record.py index e654aa67..75188707 100644 --- a/etl/epc/Record.py +++ b/etl/epc/Record.py @@ -425,7 +425,7 @@ class EPCRecord: # Ignore keys that are not part of the dataclass schema continue - if value in ("", None): + if value in DATA_ANOMALY_MATCHES: setattr(self, key, None) continue diff --git a/etl/epc/tests/test_epcrecord.py b/etl/epc/tests/test_epcrecord.py index 0d862acc..bc484d74 100644 --- a/etl/epc/tests/test_epcrecord.py +++ b/etl/epc/tests/test_epcrecord.py @@ -63,55 +63,55 @@ class TestEpcRecord: # We have an epc with Natural ventilation - the resulting epc should also have natural ventulation record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "mechanical-ventilation": "natural" } record._clean_ventilation() - assert record.prepared_epc["mechanical-ventilation"] == "natural" + assert record._prepared_epc["mechanical-ventilation"] == "natural" record2 = EPCRecord(cleaning_data=cleaning_data) - record2.prepared_epc = { + record2._prepared_epc = { "mechanical-ventilation": "" } record2._clean_ventilation() - assert record2.prepared_epc["mechanical-ventilation"] is None + assert record2._prepared_epc["mechanical-ventilation"] is None record3 = EPCRecord(cleaning_data=cleaning_data) - record3.prepared_epc = { + record3._prepared_epc = { "mechanical-ventilation": None } record3._clean_ventilation() - assert record3.prepared_epc["mechanical-ventilation"] is None + assert record3._prepared_epc["mechanical-ventilation"] is None record4 = EPCRecord(cleaning_data=cleaning_data) - record4.prepared_epc = { + record4._prepared_epc = { "mechanical-ventilation": "INVALID" } record4._clean_ventilation() - assert record4.prepared_epc["mechanical-ventilation"] is None + assert record4._prepared_epc["mechanical-ventilation"] is None def test_clean_energy_valid_values(self, cleaning_data, epc_records_1): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "energy-consumption-current": "200", "co2-emissions-current": "5.5" } record._clean_energy() - assert record.prepared_epc["energy-consumption-current"] == 200.0 - assert record.prepared_epc["co2-emissions-current"] == 5.5 + assert record._prepared_epc["energy-consumption-current"] == 200.0 + assert record._prepared_epc["co2-emissions-current"] == 5.5 def test_clean_energy_empty_values(self, cleaning_data): # We cannot have invalid values so this should raise an exception record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "energy-consumption-current": "", "co2-emissions-current": "" } @@ -122,37 +122,37 @@ class TestEpcRecord: def test_clean_built_form_valid_remap(self, cleaning_data, epc_records_1): record = EPCRecord(cleaning_data=cleaning_data) # Assuming "Semi" should be remapped to "Semi-Detached" - record.prepared_epc = { + record._prepared_epc = { "built-form": "Semi-Detached", "property-type": "Flat" # Assuming this affects the remapping } record._clean_built_form() - assert record.prepared_epc["built-form"] == "Semi-Detached" + assert record._prepared_epc["built-form"] == "Semi-Detached" def test_clean_built_form_anomaly(self, cleaning_data, epc_records_1): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "built-form": "", "property-type": "Flat" } record._clean_built_form() - assert record.prepared_epc["built-form"] == "End-Terrace" + assert record._prepared_epc["built-form"] == "End-Terrace" def test_clean_floor_area_valid(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "total-floor-area": "120.5" } record._clean_floor_area() - assert record.prepared_epc["total-floor-area"] == 120.5 + assert record._prepared_epc["total-floor-area"] == 120.5 def test_clean_floor_area_empty(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "total-floor-area": "" } # We have no known case of missing floor area @@ -161,47 +161,47 @@ class TestEpcRecord: def test_clean_heat_loss_corridor_valid(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "heat-loss-corridor": "unheated corridor", "unheated-corridor-length": "" } record._clean_heat_loss_corridor() - assert record.prepared_epc["heat-loss-corridor"] == "unheated corridor" + assert record._prepared_epc["heat-loss-corridor"] == "unheated corridor" record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "heat-loss-corridor": "unheated corridor", "unheated-corridor-length": None } record._clean_heat_loss_corridor() - assert record.prepared_epc["heat-loss-corridor"] == "unheated corridor" - assert record.prepared_epc["unheated-corridor-length"] is None + assert record._prepared_epc["heat-loss-corridor"] == "unheated corridor" + assert record._prepared_epc["unheated-corridor-length"] is None def test_clean_heat_loss_corridor_anomaly(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) # Assuming "InvalidCorridor" is an anomaly - record.prepared_epc = { + record._prepared_epc = { "heat-loss-corridor": "InvalidCorridor", "unheated-corridor-length": "" } record._clean_heat_loss_corridor() - assert record.prepared_epc["heat-loss-corridor"] == "no corridor" + assert record._prepared_epc["heat-loss-corridor"] == "no corridor" def test_clean_mains_gas_valid(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "mains-gas-flag": "Y" } record._clean_mains_gas() - assert record.prepared_epc["mains-gas-flag"] is True + assert record._prepared_epc["mains-gas-flag"] is True def test_clean_mains_gas_anomaly(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "mains-gas-flag": "InvalidValue" } # It should always be Y or N or an anomally value @@ -209,46 +209,46 @@ class TestEpcRecord: record._clean_mains_gas() record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "mains-gas-flag": random.choice(list(DATA_ANOMALY_MATCHES)) } record._clean_mains_gas() - assert record.prepared_epc["mains-gas-flag"] is None + assert record._prepared_epc["mains-gas-flag"] is None def test_clean_solar_hot_water_valid(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "solar-water-heating-flag": "Y" } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] == "Y" + assert record._prepared_epc["solar-water-heating-flag"] == "Y" assert record.solar_water_heating_flag_bool is True def test_clean_solar_hot_water_empty(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "solar-water-heating-flag": "" } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record._prepared_epc["solar-water-heating-flag"] == "N" assert record.solar_water_heating_flag_bool is False def test_clean_number_lighting_outlets_valid(self, cleaning_data, epc_records_1): record = EPCRecord(cleaning_data=cleaning_data, epc_records=epc_records_1) - record.prepared_epc = { + record._prepared_epc = { "fixed-lighting-outlets-count": "5" } record._clean_number_lighting_outlets() - assert record.prepared_epc["fixed-lighting-outlets-count"] == 5.0 + assert record._prepared_epc["fixed-lighting-outlets-count"] == 5.0 def test_clean_number_lighting_outlets_empty(self, cleaning_data, epc_records_1): record = EPCRecord(cleaning_data=cleaning_data) record.run_mode = "newdata" - record.prepared_epc = { + record._prepared_epc = { "fixed-lighting-outlets-count": "", "property-type": "Flat", "built-form": "Semi-Detached", @@ -261,12 +261,12 @@ class TestEpcRecord: record.full_sap_epc = [] record._clean_number_lighting_outlets() - assert record.prepared_epc["fixed-lighting-outlets-count"] == 10 + assert record._prepared_epc["fixed-lighting-outlets-count"] == 10 def test_clean_count_variables(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "number-open-fireplaces": "1", "extension-count": None, "flat-storey-count": "", @@ -275,85 +275,85 @@ class TestEpcRecord: record._clean_count_variables() - assert record.prepared_epc["number-open-fireplaces"] == 1.0 - assert record.prepared_epc["extension-count"] == 0 - assert record.prepared_epc["flat-storey-count"] is None - assert record.prepared_epc["number-habitable-rooms"] is None + assert record._prepared_epc["number-open-fireplaces"] == 1.0 + assert record._prepared_epc["extension-count"] == 0 + assert record._prepared_epc["flat-storey-count"] is None + assert record._prepared_epc["number-habitable-rooms"] is None def test_clean_floor_level(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "floor-level": "1", } record._clean_floor_level() - assert record.prepared_epc["floor-level"] == 1.0 + assert record._prepared_epc["floor-level"] == 1.0 record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "floor-level": "", } record._clean_floor_level() - assert record.prepared_epc["floor-level"] is None + assert record._prepared_epc["floor-level"] is None record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "floor-level": None, } record._clean_floor_level() - assert record.prepared_epc["floor-level"] is None + assert record._prepared_epc["floor-level"] is None def test_clean_solar_hot_water(self, cleaning_data): record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "solar-water-heating-flag": "Y", } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] == "Y" + assert record._prepared_epc["solar-water-heating-flag"] == "Y" assert record.solar_water_heating_flag_bool is True record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "solar-water-heating-flag": "N", } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record._prepared_epc["solar-water-heating-flag"] == "N" assert record.solar_water_heating_flag_bool is False record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "solar-water-heating-flag": "", } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record._prepared_epc["solar-water-heating-flag"] == "N" assert record.solar_water_heating_flag_bool is False record = EPCRecord(cleaning_data=cleaning_data) - record.prepared_epc = { + record._prepared_epc = { "solar-water-heating-flag": None, } record._clean_solar_hot_water() - assert record.prepared_epc["solar-water-heating-flag"] == "N" + assert record._prepared_epc["solar-water-heating-flag"] == "N" assert record.solar_water_heating_flag_bool is False def test_year_built(self, cleaning_data):