mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
57 lines
2.2 KiB
Python
57 lines
2.2 KiB
Python
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
|
|
|
|
|
|
class TestMainHeatControlAttributes:
|
|
|
|
def test_init(self):
|
|
# Test initialization with a valid description
|
|
valid_description = 'Flat rate charging, no thermostatic control of room temperature'
|
|
attr = MainheatControlAttributes(valid_description)
|
|
assert attr.description == valid_description.lower()
|
|
|
|
# Test initialization with a description that contains none of the keywords
|
|
with pytest.raises(ValueError):
|
|
MainheatControlAttributes('description without keywords')
|
|
|
|
@pytest.mark.parametrize(
|
|
"test_case",
|
|
mainheat_control_cases
|
|
)
|
|
def test_process_mainheat(self, test_case):
|
|
expected_result = test_case.copy()
|
|
del expected_result["original_description"]
|
|
result = MainheatControlAttributes(test_case['original_description']).process()
|
|
assert sorted(result.items()) == sorted(expected_result.items())
|
|
|
|
def test_invalid_description(self):
|
|
# Test that invalid descriptions raise a ValueError
|
|
invalid_descriptions = [
|
|
"invalid description",
|
|
"description with no known heating control data_types",
|
|
]
|
|
|
|
for description in invalid_descriptions:
|
|
with pytest.raises(ValueError):
|
|
MainheatControlAttributes(description).process()
|
|
|
|
def test_process_with_no_data(self):
|
|
# Create an instance of MainheatControlAttributes with no description
|
|
attributes = MainheatControlAttributes(description="")
|
|
|
|
# Call the process method
|
|
result = attributes.process()
|
|
|
|
# Assert that the result matches the expected dictionary
|
|
assert result == {
|
|
"thermostatic_control": False,
|
|
"charging_system": False,
|
|
"switch_system": False,
|
|
"no_control": False,
|
|
"dhw_control": False,
|
|
"community_heating": False,
|
|
"multiple_room_thermostats": False,
|
|
"auxiliary_systems": False,
|
|
"trvs": False
|
|
}
|