fixed unit tests

This commit is contained in:
Khalim Conn-Kowlessar 2023-10-05 16:04:12 +01:00
parent c86b742af4
commit 965e8e99d3
28 changed files with 64 additions and 81 deletions

View file

@ -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/*

View file

@ -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()

View file

@ -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:

View file

@ -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):

View file

@ -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):

View file

@ -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"

View file

@ -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):

View file

@ -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

View file

@ -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):

View file

@ -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):

View file

@ -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
)

View file

@ -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):

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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.

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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>":

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -1,5 +1,5 @@
import pytest
from model_data.BoreholeClient import BoreholeClient
from etl.spatial.BoreholeClient import BoreholeClient
@pytest.fixture

View file

@ -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

View file

@ -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 (

View file

@ -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