mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
fixed unit tests
This commit is contained in:
parent
c86b742af4
commit
965e8e99d3
28 changed files with 64 additions and 81 deletions
10
.coveragerc
10
.coveragerc
|
|
@ -2,12 +2,8 @@
|
|||
omit =
|
||||
*__init__*
|
||||
*/tests/*
|
||||
model_data/temp_inputs.py
|
||||
model_data/config.py
|
||||
model_data/__init__.py
|
||||
model_data/app.py
|
||||
model_data/plotting/*
|
||||
recommendations/rdsap_tables.py
|
||||
model_data/simulation_system/*
|
||||
model_data/cleaner_app.py
|
||||
*/config.py
|
||||
*/app.py
|
||||
*/settings.py
|
||||
backend/app/*
|
||||
|
|
@ -1,10 +1,8 @@
|
|||
import pytest
|
||||
import pandas as pd
|
||||
from unittest.mock import Mock
|
||||
from epc_api.client import EpcClient
|
||||
from backend.Property import Property
|
||||
from open_uprn.OpenUprnClient import OpenUprnClient
|
||||
from model_data.EpcClean import EpcClean
|
||||
from etl.epc_clean.EpcClean import EpcClean
|
||||
|
||||
# Define some test data
|
||||
mock_epc_response = {
|
||||
|
|
@ -130,7 +128,7 @@ mock_epc_response_dupe = {
|
|||
|
||||
class TestProperty:
|
||||
@pytest.fixture(autouse=True)
|
||||
def property_instance(self, mock_epc_client, mock_open_uprn_client, mock_cleaner):
|
||||
def property_instance(self, mock_epc_client, mock_cleaner):
|
||||
property_instance = Property(1, "AB12CD", "Test Address", epc_client=mock_epc_client)
|
||||
return property_instance
|
||||
|
||||
|
|
@ -141,29 +139,18 @@ class TestProperty:
|
|||
|
||||
@pytest.fixture
|
||||
def mock_epc_client(self):
|
||||
mock_epc_client = Mock(spec=EpcClient())
|
||||
mock_epc_client = Mock(spec=EpcClient(auth_token="mocked_auth_token"))
|
||||
mock_epc_client.domestic.search.return_value = mock_epc_response.copy()
|
||||
mock_epc_client.auth_token = "mocked_auth_token"
|
||||
return mock_epc_client
|
||||
|
||||
@pytest.fixture
|
||||
def mock_epc_client_dupe_data(self):
|
||||
mock_epc_client_dupe_data = Mock(spec=EpcClient())
|
||||
mock_epc_client_dupe_data = Mock(spec=EpcClient(auth_token="mocked_auth_token"))
|
||||
mock_epc_client_dupe_data.domestic.search.return_value = mock_epc_response_dupe.copy()
|
||||
mock_epc_client_dupe_data.auth_token = "mocked_auth_token"
|
||||
return mock_epc_client_dupe_data
|
||||
|
||||
@pytest.fixture
|
||||
def mock_open_uprn_client(self):
|
||||
mock_open_uprn_client = Mock(spec=OpenUprnClient(path=None, uprns=[12345]))
|
||||
mock_open_uprn_client.data = pd.DataFrame(
|
||||
[
|
||||
{"UPRN": 12345, "longitude": 1.2345, "latitude": 2.3456},
|
||||
{"UPRN": 12346, "longitude": 3.4567, "latitude": 4.5678}
|
||||
]
|
||||
)
|
||||
return mock_open_uprn_client
|
||||
|
||||
@pytest.fixture
|
||||
def mock_cleaner(self):
|
||||
lighting_averages = [
|
||||
|
|
@ -201,10 +188,10 @@ class TestProperty:
|
|||
# Should be mocked auth token
|
||||
assert inst1.epc_client.auth_token == "mocked_auth_token"
|
||||
|
||||
inst2 = Property(3, "AB12CD", "Test Address")
|
||||
inst2 = Property(3, "AB12CD", "Test Address", epc_client=mock_epc_client)
|
||||
assert inst2.epc_client.auth_token
|
||||
|
||||
inst3 = Property(4, "AB12CD", "Test Address", data={"some": "data"})
|
||||
inst3 = Property(4, "AB12CD", "Test Address", data={"some": "data"}, epc_client=mock_epc_client)
|
||||
assert inst3.data == {"some": "data"}
|
||||
|
||||
data = inst3.search_address_epc()
|
||||
|
|
|
|||
|
|
@ -4,16 +4,16 @@ from collections import defaultdict
|
|||
|
||||
import pandas as pd
|
||||
|
||||
from model_data.utils import correct_spelling
|
||||
from model_data.epc_attributes.FloorAttributes import FloorAttributes
|
||||
from model_data.epc_attributes.HotWaterAttributes import HotWaterAttributes
|
||||
from model_data.epc_attributes.MainFuelAttributes import MainFuelAttributes
|
||||
from model_data.epc_attributes.MainheatAttributes import MainHeatAttributes
|
||||
from model_data.epc_attributes.MainheatControlAttributes import MainheatControlAttributes
|
||||
from model_data.epc_attributes.RoofAttributes import RoofAttributes
|
||||
from model_data.epc_attributes.WallAttributes import WallAttributes
|
||||
from model_data.epc_attributes.WindowAttributes import WindowAttributes
|
||||
from model_data.epc_attributes.LightingAttributes import LightingAttributes
|
||||
from etl.epc_clean.utils import correct_spelling
|
||||
from etl.epc_clean.epc_attributes.FloorAttributes import FloorAttributes
|
||||
from etl.epc_clean.epc_attributes.HotWaterAttributes import HotWaterAttributes
|
||||
from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes
|
||||
from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes
|
||||
from etl.epc_clean.epc_attributes.MainheatControlAttributes import MainheatControlAttributes
|
||||
from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes
|
||||
from etl.epc_clean.epc_attributes.WallAttributes import WallAttributes
|
||||
from etl.epc_clean.epc_attributes.WindowAttributes import WindowAttributes
|
||||
from etl.epc_clean.epc_attributes.LightingAttributes import LightingAttributes
|
||||
|
||||
|
||||
class EpcClean:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import re
|
||||
from typing import Dict, Union
|
||||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import extract_thermal_transmittance, extract_component_types
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import extract_thermal_transmittance, extract_component_types
|
||||
|
||||
|
||||
class FloorAttributes(Definitions):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from typing import Dict, Union
|
||||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import clean_description, find_keyword
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import clean_description, find_keyword
|
||||
|
||||
|
||||
class HotWaterAttributes(Definitions):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import re
|
||||
from model_data.epc_attributes.attribute_utils import clean_description
|
||||
from model_data.utils import correct_spelling
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import clean_description
|
||||
from etl.epc_clean.utils import correct_spelling
|
||||
|
||||
|
||||
class LightingAttributes:
|
||||
|
|
@ -27,7 +27,7 @@ class LightingAttributes:
|
|||
lel_match2 = re.search(r"goleuadau ynni-isel mewn (\d+)%? o'r mannau gosod", self.description)
|
||||
|
||||
if lel_match is not None or lel_match2 is not None:
|
||||
|
||||
|
||||
# Perform the actual translation
|
||||
percentage = lel_match.group(1) if lel_match is not None else lel_match2.group(1)
|
||||
self.description = f"low energy lighting in {percentage}% of fixed outlets"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from typing import Dict, Union
|
||||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import clean_description, remove_punctuation, find_keyword
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import clean_description, remove_punctuation, find_keyword
|
||||
|
||||
|
||||
class MainFuelAttributes(Definitions):
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import clean_description, process_part, switch_chars
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import clean_description, process_part, switch_chars
|
||||
from typing import Dict, Union
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from typing import Dict, Union
|
||||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import clean_description, find_keyword
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import clean_description, find_keyword
|
||||
|
||||
|
||||
class MainheatControlAttributes(Definitions):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import re
|
||||
from typing import Dict, Union
|
||||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import extract_component_types, extract_thermal_transmittance
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import extract_component_types, extract_thermal_transmittance
|
||||
|
||||
|
||||
class RoofAttributes(Definitions):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import re
|
||||
from typing import Dict, Union
|
||||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import (
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import (
|
||||
extract_component_types,
|
||||
extract_thermal_transmittance
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from typing import Dict, Union
|
||||
from model_data.BaseUtility import Definitions
|
||||
from model_data.epc_attributes.attribute_utils import clean_description
|
||||
from BaseUtility import Definitions
|
||||
from etl.epc_clean.epc_attributes.attribute_utils import clean_description
|
||||
|
||||
|
||||
class WindowAttributes(Definitions):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
import pickle
|
||||
from model_data.EpcClean import EpcClean
|
||||
from etl.epc_clean.EpcClean import EpcClean
|
||||
from pathlib import Path
|
||||
|
||||
# For local testing
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
from model_data.tests.test_data.test_floor_attributes_cases import clean_floor_cases
|
||||
from model_data.epc_attributes.FloorAttributes import FloorAttributes
|
||||
from etl.epc_clean.tests.test_data.test_floor_attributes_cases import clean_floor_cases
|
||||
from etl.epc_clean.epc_attributes.FloorAttributes import FloorAttributes
|
||||
|
||||
|
||||
class TestCleanFloor:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
from model_data.epc_attributes.HotWaterAttributes import HotWaterAttributes
|
||||
from model_data.tests.test_data.test_hot_water_attributes_cases import hotwater_cases
|
||||
from etl.epc_clean.epc_attributes.HotWaterAttributes import HotWaterAttributes
|
||||
from etl.epc_clean.tests.test_data.test_hot_water_attributes_cases import hotwater_cases
|
||||
|
||||
|
||||
class TestHotWaterAttributes:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import pandas as pd
|
||||
import pytest
|
||||
from model_data.tests.test_data.test_lighting_attributes_cases import test_cases
|
||||
from model_data.epc_attributes.LightingAttributes import LightingAttributes
|
||||
from etl.epc_clean.tests.test_data.test_lighting_attributes_cases import test_cases
|
||||
from etl.epc_clean.epc_attributes.LightingAttributes import LightingAttributes
|
||||
|
||||
# An example averages dataset to use in tests. It is a dictionary where the key is a lighting description and the
|
||||
# value is the expected proportion.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
from model_data.epc_attributes.MainFuelAttributes import MainFuelAttributes
|
||||
from model_data.tests.test_data.test_main_fuel_attributes_cases import mainfuel_cases
|
||||
from etl.epc_clean.epc_attributes.MainFuelAttributes import MainFuelAttributes
|
||||
from etl.epc_clean.tests.test_data.test_main_fuel_attributes_cases import mainfuel_cases
|
||||
|
||||
|
||||
class TestMainHeatControlAttributes:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
from model_data.epc_attributes.MainheatAttributes import MainHeatAttributes
|
||||
from model_data.tests.test_data.test_mainheat_attributes_cases import mainheat_cases
|
||||
from etl.epc_clean.epc_attributes.MainheatAttributes import MainHeatAttributes
|
||||
from etl.epc_clean.tests.test_data.test_mainheat_attributes_cases import mainheat_cases
|
||||
|
||||
|
||||
class TestMainHeatAttributes:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
from model_data.epc_attributes.MainheatControlAttributes import MainheatControlAttributes
|
||||
from model_data.tests.test_data.test_mainheat_control_attributes_cases import mainheat_control_cases
|
||||
from etl.epc_clean.epc_attributes.MainheatControlAttributes import MainheatControlAttributes
|
||||
from etl.epc_clean.tests.test_data.test_mainheat_control_attributes_cases import mainheat_control_cases
|
||||
|
||||
|
||||
class TestMainHeatControlAttributes:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import pytest
|
||||
from pathlib import Path
|
||||
from model_data.tests.test_data.test_roof_attributes_cases import clean_roof_test_cases
|
||||
from model_data.epc_attributes.RoofAttributes import RoofAttributes
|
||||
from etl.epc_clean.tests.test_data.test_roof_attributes_cases import clean_roof_test_cases
|
||||
from etl.epc_clean.epc_attributes.RoofAttributes import RoofAttributes
|
||||
|
||||
# For local testing
|
||||
if __file__ == "<input>":
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from model_data.utils import is_percentage_or_number, correct_spelling
|
||||
from etl.epc_clean.utils import is_percentage_or_number, correct_spelling
|
||||
|
||||
|
||||
class TestUtils:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
from model_data.epc_attributes.WallAttributes import WallAttributes
|
||||
from model_data.tests.test_data.test_wall_attributes_cases import wall_cases
|
||||
from etl.epc_clean.epc_attributes.WallAttributes import WallAttributes
|
||||
from etl.epc_clean.tests.test_data.test_wall_attributes_cases import wall_cases
|
||||
|
||||
|
||||
class TestWallAttributes:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
from model_data.epc_attributes.WindowAttributes import WindowAttributes
|
||||
from model_data.tests.test_data.test_window_attributes_cases import windows_cases
|
||||
from etl.epc_clean.epc_attributes.WindowAttributes import WindowAttributes
|
||||
from etl.epc_clean.tests.test_data.test_window_attributes_cases import windows_cases
|
||||
|
||||
|
||||
class TestWindowAttributes:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pandas as pd
|
||||
from unittest.mock import patch, call
|
||||
from model_data.LandRegistryClient import LandRegistryClient
|
||||
from etl.land_registry.LandRegistryClient import LandRegistryClient
|
||||
|
||||
|
||||
class TestLandRegistryClient:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import pytest
|
||||
from model_data.BoreholeClient import BoreholeClient
|
||||
from etl.spatial.BoreholeClient import BoreholeClient
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[pytest]
|
||||
pythonpath = .
|
||||
addopts = --cov-report term-missing --cov=model_data --cov=recommendations
|
||||
testpaths = model_data/tests recommendations/tests backend/tests
|
||||
addopts = --cov-report term-missing --cov=etl --cov=recommendations --cov=backend
|
||||
testpaths = etl/*/tests recommendations/tests backend/tests
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import math
|
||||
from typing import List
|
||||
from model_data.BaseUtility import Definitions
|
||||
from BaseUtility import Definitions
|
||||
from datatypes.enums import QuantityUnits
|
||||
from backend.Property import Property
|
||||
from recommendations.recommendation_utils import (
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from typing import List
|
|||
|
||||
from datatypes.enums import QuantityUnits
|
||||
from backend.Property import Property
|
||||
from model_data.BaseUtility import Definitions
|
||||
from BaseUtility import Definitions
|
||||
from recommendations.recommendation_utils import (
|
||||
r_value_per_mm_to_u_value, calculate_u_value_uplift, is_diminishing_returns, update_lowest_selected_u_value,
|
||||
get_recommended_part, get_wall_u_value
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue