From d3a494a7e7902baa6ed5b0d07af6d35ce27654bf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 11 Feb 2026 17:09:08 +0000 Subject: [PATCH] handling missing roof description --- recommendations/RoofRecommendations.py | 4 ++++ .../tests/test_roof_recommendations.py | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 5e118844..0021edcc 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -300,6 +300,10 @@ class RoofRecommendations: ): return False + if self.property.roof["original_description"] is None: + # There is no description so we cannot make an assessment + return False + return True @staticmethod diff --git a/recommendations/tests/test_roof_recommendations.py b/recommendations/tests/test_roof_recommendations.py index 0879757f..64a4d9d6 100644 --- a/recommendations/tests/test_roof_recommendations.py +++ b/recommendations/tests/test_roof_recommendations.py @@ -8,6 +8,30 @@ from recommendations.tests.test_data.materials import materials class TestRoofRecommendations: + def test_null_roof_description(self): + epc_record = EPCRecord() + epc_record.prepared_epc = { + "county": "Cambridgeshire", + } + property_instance = Property(id=0, address="fake", postcode="fake", epc_record=epc_record) + property_instance.age_band = "F" + property_instance.insulation_floor_area = 100 + property_instance.roof = { + 'original_description': None, + 'clean_description': None, + 'thermal_transmittance': None, + 'thermal_transmittance_unit': None, + 'is_pitched': True, 'is_roof_room': False, 'is_loft': False, 'is_flat': False, 'is_thatched': False, + 'is_at_rafters': False, 'is_assumed': True, 'has_dwelling_above': False, 'is_valid': True, + 'insulation_thickness': 'none', 'roof_thermal_transmittance': None, 'roof_insulation_thickness': None + } + property_instance.already_installed = [] + + roof_recommender = RoofRecommendations(property_instance=property_instance, materials=materials) + roof_recommender.recommend(phase=0) + + assert not roof_recommender.recommendations + def test_loft_insulation_recommendation_no_insulation(self): epc_record = EPCRecord() epc_record.prepared_epc = {