diff --git a/recommendations/RoofRecommendations.py b/recommendations/RoofRecommendations.py index 578173bb..08fceb32 100644 --- a/recommendations/RoofRecommendations.py +++ b/recommendations/RoofRecommendations.py @@ -424,14 +424,17 @@ class RoofRecommendations: is_assumed = mapped["is_assumed"] insulation_thickness = mapped["insulation_thickness"] is_at_rafters = mapped["is_at_rafters"] + is_flat = mapped["is_flat"] needs_sloping_ceiling = self.is_sloping_ceiling_appropriate( + is_flat=is_flat, is_pitched=is_pitched, is_loft=is_loft, is_assumed=is_assumed, has_sloping_ceiling_recommendation=has_sloping_ceiling_recommendation, primary_roof_is_sloped=True, - insulation_thickness=insulation_thickness + insulation_thickness=insulation_thickness, + has_loft_insulation_recommendation=has_loft_insulation_recommendation ) # If the roof has some form of insulation already but isn't a loft, it's # not a loft. E.g. "pitched, limited insulation" is for sloping ceiling, not loft @@ -525,11 +528,13 @@ class RoofRecommendations: needs_sloping_ceiling = self.is_sloping_ceiling_appropriate( is_pitched=is_pitched, + is_flat=is_flat, is_loft=is_loft, is_assumed=is_assumed, has_sloping_ceiling_recommendation=has_sloping_ceiling_recommendation, primary_roof_is_sloped=primary_roof_is_sloped, - insulation_thickness=insulation_thickness + insulation_thickness=insulation_thickness, + has_loft_insulation_recommendation=has_loft_insulation_recommendation ) needs_loft_insulation = self.is_loft_insulation_appropriate( measures=measures, diff --git a/recommendations/tests/test_roof_recommendations.py b/recommendations/tests/test_roof_recommendations.py index f022f9b7..9f39779c 100644 --- a/recommendations/tests/test_roof_recommendations.py +++ b/recommendations/tests/test_roof_recommendations.py @@ -407,7 +407,8 @@ class TestRoofRecommendations: # ~~~~~~~~~~~~ Sloping Ceiling Insulation ~~~~~~~~~~~~ @pytest.mark.parametrize( - "roof, has_sloping_ceiling_recommendation, primary_roof_is_sloped, insulation_thickness, expected_result", + "roof, has_sloping_ceiling_recommendation, primary_roof_is_sloped, insulation_thickness, " + "has_loft_insulation_recommendation, expected_result", [ ( { @@ -428,6 +429,7 @@ class TestRoofRecommendations: True, True, "none", + False, True, ), ( @@ -441,21 +443,24 @@ class TestRoofRecommendations: False, False, "average", + False, False ) ] ) def test_is_sloping_ceiling_appropriate( self, roof, has_sloping_ceiling_recommendation, primary_roof_is_sloped, - insulation_thickness, expected_result + insulation_thickness, has_loft_insulation_recommendation, expected_result ): assert RoofRecommendations.is_sloping_ceiling_appropriate( + is_flat=roof["is_flat"], is_pitched=roof["is_pitched"], is_loft=roof["is_loft"], is_assumed=roof["is_assumed"], has_sloping_ceiling_recommendation=has_sloping_ceiling_recommendation, primary_roof_is_sloped=primary_roof_is_sloped, - insulation_thickness=insulation_thickness + insulation_thickness=insulation_thickness, + has_loft_insulation_recommendation=has_loft_insulation_recommendation ) == expected_result def test_sloping_ceiling_pitched_no_insulation(self):