From 65c362e0ac810d7e4c6ba863387ff8c4fa0d655b Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 18 Oct 2023 17:38:54 +1100 Subject: [PATCH] Added ventilation unit testa --- .../tests/test_ventilation_recommendations.py | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 recommendations/tests/test_ventilation_recommendations.py diff --git a/recommendations/tests/test_ventilation_recommendations.py b/recommendations/tests/test_ventilation_recommendations.py new file mode 100644 index 00000000..2dcaba57 --- /dev/null +++ b/recommendations/tests/test_ventilation_recommendations.py @@ -0,0 +1,110 @@ +from backend.Property import Property +from unittest.mock import Mock +from recommendations.VentilationRecommendations import VentilationRecommendations + +ventilation_materials = [ + { + 'id': 17, 'type': 'mechanical_ventilation', 'description': 'Mechanical Extract Ventilation', + 'depths': None, 'depth_unit': None, 'cost': 500, 'cost_unit': 'gbp_per_unit', 'r_value_per_mm': None, + 'r_value_unit': None, 'thermal_conductivity': None, 'thermal_conductivity_unit': None, + 'link': None, 'is_active': True, 'estimated_cost': 1000, 'quantity': 2, 'quantity_unit': None + } +] + + +class TestVentilationRecommendations: + + def test_natural_ventilation(self): + input_property1 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property1.data = {"mechanical-ventilation": "natural"} + + recommender = VentilationRecommendations( + property_instance=input_property1, + materials=ventilation_materials + ) + + assert not recommender.recommendation + + recommender.recommend() + + assert len(recommender.recommendation) == 1 + + assert recommender.recommendation[0]["cost"] == 1000 + assert recommender.recommendation[0]["type"] == "mechanical_ventilation" + assert len(recommender.recommendation[0]["parts"]) == 1 + assert recommender.recommendation[0]["parts"][0]["description"] == 'Mechanical Extract Ventilation' + assert recommender.recommendation[0]["parts"][0]["quantity"] == 2 + + def test_missing_ventilation(self): + input_property2 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property2.data = {"mechanical-ventilation": None} + + recommender2 = VentilationRecommendations( + property_instance=input_property2, + materials=ventilation_materials + ) + + assert not recommender2.recommendation + + recommender2.recommend() + + assert len(recommender2.recommendation) == 1 + + assert recommender2.recommendation[0]["cost"] == 1000 + assert recommender2.recommendation[0]["type"] == "mechanical_ventilation" + assert len(recommender2.recommendation[0]["parts"]) == 1 + assert recommender2.recommendation[0]["parts"][0]["description"] == 'Mechanical Extract Ventilation' + assert recommender2.recommendation[0]["parts"][0]["quantity"] == 2 + + def test_nodata_ventilation(self): + input_property3 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property3.data = {"mechanical-ventilation": "NO DATA!!"} + + recommender3 = VentilationRecommendations( + property_instance=input_property3, + materials=ventilation_materials + ) + + assert not recommender3.recommendation + + recommender3.recommend() + + assert len(recommender3.recommendation) == 1 + + assert recommender3.recommendation[0]["cost"] == 1000 + assert recommender3.recommendation[0]["type"] == "mechanical_ventilation" + assert len(recommender3.recommendation[0]["parts"]) == 1 + assert recommender3.recommendation[0]["parts"][0]["description"] == 'Mechanical Extract Ventilation' + assert recommender3.recommendation[0]["parts"][0]["quantity"] == 2 + + def test_existing_ventilation_1(self): + input_property4 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property4.data = {"mechanical-ventilation": 'mechanical, extract only'} + + recommender4 = VentilationRecommendations( + property_instance=input_property4, + materials=ventilation_materials + ) + + assert not recommender4.recommendation + + recommender4.recommend() + + assert not recommender4.recommendation + assert recommender4.has_ventilaion + + def test_existing_ventilation_2(self): + input_property5 = Property(id=1, postcode="F4k3 6", address1="623 fake street", epc_client=Mock()) + input_property5.data = {"mechanical-ventilation": 'mechanical, supply and extract'} + + recommender5 = VentilationRecommendations( + property_instance=input_property5, + materials=ventilation_materials + ) + + assert not recommender5.recommendation + + recommender5.recommend() + + assert not recommender5.recommendation + assert recommender5.has_ventilaion