mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Load RoofSpace from SiteNotes JSON 🟥
This commit is contained in:
parent
770bf1293d
commit
3960998fee
2 changed files with 61 additions and 0 deletions
|
|
@ -6,12 +6,15 @@ from datatypes.epc.surveys.pashub_rdsap_site_notes import (
|
|||
BuildingMeasurements,
|
||||
ExtensionConstruction,
|
||||
ExtensionMeasurements,
|
||||
ExtensionRoofSpace,
|
||||
FloorConstruction,
|
||||
FloorMeasurement,
|
||||
General,
|
||||
MainBuildingConstruction,
|
||||
MainBuildingMeasurements,
|
||||
PasHubRdSapSiteNotes,
|
||||
RoofSpace,
|
||||
RoofSpaceDetail,
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -224,6 +227,9 @@ class PasHubRdSapSiteNotesExtractor:
|
|||
extensions=extensions if extensions else None,
|
||||
)
|
||||
|
||||
def extract_roof_space(self) -> RoofSpace:
|
||||
raise NotImplementedError
|
||||
|
||||
def _parse_floor_measurements(self, data: List[str]) -> List[FloorMeasurement]:
|
||||
floors = []
|
||||
i = 0
|
||||
|
|
|
|||
|
|
@ -9,12 +9,15 @@ from datatypes.epc.surveys.pashub_rdsap_site_notes import (
|
|||
BuildingMeasurements,
|
||||
ExtensionConstruction,
|
||||
ExtensionMeasurements,
|
||||
ExtensionRoofSpace,
|
||||
FloorConstruction,
|
||||
FloorMeasurement,
|
||||
General,
|
||||
MainBuildingConstruction,
|
||||
MainBuildingMeasurements,
|
||||
PasHubRdSapSiteNotes,
|
||||
RoofSpace,
|
||||
RoofSpaceDetail,
|
||||
)
|
||||
|
||||
FIXTURES = os.path.join(os.path.dirname(__file__), "fixtures")
|
||||
|
|
@ -237,3 +240,55 @@ class TestBuildingMeasurements:
|
|||
)
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
class TestRoofSpace:
|
||||
@pytest.fixture
|
||||
def roof_space(self) -> RoofSpace:
|
||||
return PasHubRdSapSiteNotesExtractor(load_text_fixture()).extract_roof_space()
|
||||
|
||||
def test_main_building_insulation_thickness_mm(
|
||||
self, roof_space: RoofSpace
|
||||
) -> None:
|
||||
assert roof_space.main_building.insulation_thickness_mm == 100
|
||||
|
||||
def test_main_building_insulation_thickness_string_absent(
|
||||
self, roof_space: RoofSpace
|
||||
) -> None:
|
||||
assert roof_space.main_building.insulation_thickness is None
|
||||
|
||||
def test_main_building_rooms_in_roof(self, roof_space: RoofSpace) -> None:
|
||||
assert roof_space.main_building.rooms_in_roof is False
|
||||
|
||||
def test_main_building_roof_u_value_known(self, roof_space: RoofSpace) -> None:
|
||||
assert roof_space.main_building.roof_u_value_known is False
|
||||
|
||||
def test_extension_uses_string_thickness(self, roof_space: RoofSpace) -> None:
|
||||
assert roof_space.extensions is not None
|
||||
assert roof_space.extensions[0].insulation_thickness == "As built"
|
||||
assert roof_space.extensions[0].insulation_thickness_mm is None
|
||||
|
||||
def test_full_roof_space(self, roof_space: RoofSpace) -> None:
|
||||
assert roof_space == RoofSpace(
|
||||
main_building=RoofSpaceDetail(
|
||||
construction_type="Pitched roof (Slates or tiles), Access to loft",
|
||||
insulation_at="Joists",
|
||||
roof_u_value_known=False,
|
||||
cavity_wall_construction_indicators="cavity visible in roof space",
|
||||
rooms_in_roof=False,
|
||||
insulation_thickness_mm=100,
|
||||
insulation_thickness=None,
|
||||
),
|
||||
extensions=[
|
||||
ExtensionRoofSpace(
|
||||
id=1,
|
||||
construction_type="Pitched roof, Sloping ceiling",
|
||||
insulation_at="Sloping ceiling insulation",
|
||||
roof_u_value_known=False,
|
||||
cavity_wall_construction_indicators="No indicator of construction visible",
|
||||
rooms_in_roof=False,
|
||||
insulation_thickness_mm=None,
|
||||
insulation_thickness="As built",
|
||||
)
|
||||
],
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue