mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
Add aspect instance to asset condition and modify how peabody walls are mapped 🟥
This commit is contained in:
parent
5ab07d6903
commit
9509306e3d
4 changed files with 118 additions and 3 deletions
|
|
@ -13,6 +13,8 @@ class AssetCondition:
|
||||||
|
|
||||||
element: Element
|
element: Element
|
||||||
aspect_type: AspectType
|
aspect_type: AspectType
|
||||||
|
element_instance: Optional[int] = None
|
||||||
|
aspect_instance: Optional[int] = None
|
||||||
|
|
||||||
value: Optional[str] = None
|
value: Optional[str] = None
|
||||||
|
|
||||||
|
|
@ -20,7 +22,5 @@ class AssetCondition:
|
||||||
install_date: Optional[date] = None
|
install_date: Optional[date] = None
|
||||||
renewal_year: Optional[int] = None
|
renewal_year: Optional[int] = None
|
||||||
|
|
||||||
element_instance: Optional[int] = None
|
|
||||||
|
|
||||||
source_system: Optional[str] = None
|
source_system: Optional[str] = None
|
||||||
comments: Optional[str] = None
|
comments: Optional[str] = None
|
||||||
|
|
|
||||||
|
|
@ -10,3 +10,4 @@ class ElementMapping:
|
||||||
element: Element
|
element: Element
|
||||||
aspect_type: AspectType
|
aspect_type: AspectType
|
||||||
element_instance: Optional[int] = None
|
element_instance: Optional[int] = None
|
||||||
|
aspect_instance: Optional[int] = None
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ PEABODY_ELEMENT_MAP = {
|
||||||
element=Element.GARAGE_WALLS, aspect_type=AspectType.MATERIAL
|
element=Element.GARAGE_WALLS, aspect_type=AspectType.MATERIAL
|
||||||
),
|
),
|
||||||
(53, 23): ElementMapping(
|
(53, 23): ElementMapping(
|
||||||
element=Element.PRIMARY_WALL, aspect_type=AspectType.FINISH
|
element=Element.EXTERNAL_WALL, aspect_type=AspectType.FINISH
|
||||||
),
|
),
|
||||||
(53, 30): ElementMapping(
|
(53, 30): ElementMapping(
|
||||||
element=Element.SECONDARY_WALL, aspect_type=AspectType.FINISH
|
element=Element.SECONDARY_WALL, aspect_type=AspectType.FINISH
|
||||||
|
|
|
||||||
|
|
@ -90,3 +90,117 @@ def test_peabody_mapper_maps_property():
|
||||||
|
|
||||||
for i, (actual, expected) in enumerate(zip(actual_assets, expected_assets)):
|
for i, (actual, expected) in enumerate(zip(actual_assets, expected_assets)):
|
||||||
assert actual == expected, f"Mismatch at index {i}"
|
assert actual == expected, f"Mismatch at index {i}"
|
||||||
|
|
||||||
|
|
||||||
|
def test_wall_primary_and_secondary_wall_finish_map_correctly():
|
||||||
|
# arrange
|
||||||
|
peabody_property = PeabodyProperty(
|
||||||
|
uprn=1,
|
||||||
|
assets=[
|
||||||
|
PeabodyAssetCondition(
|
||||||
|
lo_reference="1000RAND0000",
|
||||||
|
full_address="FLAT 1 RANDOM SQUARE FAKE STREET LONDON E1 1EE",
|
||||||
|
location_type_code=1,
|
||||||
|
parent_lo_reference="RAND1000",
|
||||||
|
element_code=53,
|
||||||
|
element="External",
|
||||||
|
sub_element_code=23,
|
||||||
|
sub_element="Primary Wall Finish",
|
||||||
|
material_code=4,
|
||||||
|
material_or_answer="Pointed",
|
||||||
|
renewal_quantity=65,
|
||||||
|
renewal_year=2045,
|
||||||
|
renewal_cost=3835,
|
||||||
|
cloned="N",
|
||||||
|
lo_type_code=1,
|
||||||
|
condition_survey_date=datetime(2024, 2, 15, 12, 47, 0),
|
||||||
|
),
|
||||||
|
PeabodyAssetCondition(
|
||||||
|
lo_reference="1000RAND0000",
|
||||||
|
full_address="FLAT 1 RANDOM SQUARE FAKE STREET LONDON E1 1EE",
|
||||||
|
location_type_code=1,
|
||||||
|
parent_lo_reference="RAND1000",
|
||||||
|
element_code=120,
|
||||||
|
element="WALLS",
|
||||||
|
sub_element_code=2,
|
||||||
|
sub_element="Wall Finish",
|
||||||
|
material_code=1,
|
||||||
|
material_or_answer="Pointing",
|
||||||
|
renewal_quantity=1,
|
||||||
|
renewal_year=2069,
|
||||||
|
renewal_cost=2450,
|
||||||
|
cloned="N",
|
||||||
|
lo_type_code=1,
|
||||||
|
condition_survey_date=datetime(2014, 2, 15, 12, 47, 0),
|
||||||
|
),
|
||||||
|
PeabodyAssetCondition(
|
||||||
|
lo_reference="1000RAND0000",
|
||||||
|
full_address="FLAT 1 RANDOM SQUARE FAKE STREET LONDON E1 1EE",
|
||||||
|
location_type_code=1,
|
||||||
|
parent_lo_reference="RAND1000",
|
||||||
|
element_code=53,
|
||||||
|
element="External",
|
||||||
|
sub_element_code=30,
|
||||||
|
sub_element="Secondary Wall Finish",
|
||||||
|
material_code=8,
|
||||||
|
material_or_answer="Tile Hung",
|
||||||
|
renewal_quantity=8,
|
||||||
|
renewal_year=2049,
|
||||||
|
renewal_cost=472,
|
||||||
|
cloned="N",
|
||||||
|
lo_type_code=1,
|
||||||
|
condition_survey_date=datetime(2014, 2, 15, 12, 47, 0),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
mapper = PeabodyMapper()
|
||||||
|
|
||||||
|
expected_assets: List[AssetCondition] = [
|
||||||
|
AssetCondition(
|
||||||
|
uprn=1,
|
||||||
|
element=Element.EXTERNAL_WALLS,
|
||||||
|
aspect_type=AspectType.FINISH,
|
||||||
|
value="Pointed",
|
||||||
|
element_instance=1,
|
||||||
|
aspect_instance=1,
|
||||||
|
quantity=65,
|
||||||
|
install_date=None,
|
||||||
|
renewal_year=2045,
|
||||||
|
source_system=None,
|
||||||
|
comments=None,
|
||||||
|
),
|
||||||
|
AssetCondition(
|
||||||
|
uprn=1,
|
||||||
|
element=Element.EXTERNAL_WALLS,
|
||||||
|
aspect_type=AspectType.FINISH,
|
||||||
|
value="Pointing",
|
||||||
|
element_instance=1,
|
||||||
|
aspect_instance=1,
|
||||||
|
quantity=1,
|
||||||
|
install_date=None,
|
||||||
|
renewal_year=2069,
|
||||||
|
source_system=None,
|
||||||
|
comments=None,
|
||||||
|
),
|
||||||
|
AssetCondition(
|
||||||
|
uprn=1,
|
||||||
|
element=Element.EXTERNAL_WALLS,
|
||||||
|
aspect_type=AspectType.FINISH,
|
||||||
|
value="Tile Hung",
|
||||||
|
element_instance=1,
|
||||||
|
aspect_instance=2,
|
||||||
|
quantity=8,
|
||||||
|
install_date=None,
|
||||||
|
renewal_year=2049,
|
||||||
|
source_system=None,
|
||||||
|
comments=None,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
# act
|
||||||
|
actual_assets = mapper.map_asset_conditions_for_property(peabody_property)
|
||||||
|
|
||||||
|
# assert
|
||||||
|
assert len(actual_assets) == len(expected_assets)
|
||||||
|
|
||||||
|
for i, (actual, expected) in enumerate(zip(actual_assets, expected_assets)):
|
||||||
|
assert actual == expected, f"Mismatch at index {i}"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue