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,
|
BuildingMeasurements,
|
||||||
ExtensionConstruction,
|
ExtensionConstruction,
|
||||||
ExtensionMeasurements,
|
ExtensionMeasurements,
|
||||||
|
ExtensionRoofSpace,
|
||||||
FloorConstruction,
|
FloorConstruction,
|
||||||
FloorMeasurement,
|
FloorMeasurement,
|
||||||
General,
|
General,
|
||||||
MainBuildingConstruction,
|
MainBuildingConstruction,
|
||||||
MainBuildingMeasurements,
|
MainBuildingMeasurements,
|
||||||
PasHubRdSapSiteNotes,
|
PasHubRdSapSiteNotes,
|
||||||
|
RoofSpace,
|
||||||
|
RoofSpaceDetail,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -224,6 +227,9 @@ class PasHubRdSapSiteNotesExtractor:
|
||||||
extensions=extensions if extensions else None,
|
extensions=extensions if extensions else None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def extract_roof_space(self) -> RoofSpace:
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
def _parse_floor_measurements(self, data: List[str]) -> List[FloorMeasurement]:
|
def _parse_floor_measurements(self, data: List[str]) -> List[FloorMeasurement]:
|
||||||
floors = []
|
floors = []
|
||||||
i = 0
|
i = 0
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,15 @@ from datatypes.epc.surveys.pashub_rdsap_site_notes import (
|
||||||
BuildingMeasurements,
|
BuildingMeasurements,
|
||||||
ExtensionConstruction,
|
ExtensionConstruction,
|
||||||
ExtensionMeasurements,
|
ExtensionMeasurements,
|
||||||
|
ExtensionRoofSpace,
|
||||||
FloorConstruction,
|
FloorConstruction,
|
||||||
FloorMeasurement,
|
FloorMeasurement,
|
||||||
General,
|
General,
|
||||||
MainBuildingConstruction,
|
MainBuildingConstruction,
|
||||||
MainBuildingMeasurements,
|
MainBuildingMeasurements,
|
||||||
PasHubRdSapSiteNotes,
|
PasHubRdSapSiteNotes,
|
||||||
|
RoofSpace,
|
||||||
|
RoofSpaceDetail,
|
||||||
)
|
)
|
||||||
|
|
||||||
FIXTURES = os.path.join(os.path.dirname(__file__), "fixtures")
|
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