mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +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
|
||||
aspect_type: AspectType
|
||||
element_instance: Optional[int] = None
|
||||
aspect_instance: Optional[int] = None
|
||||
|
||||
value: Optional[str] = None
|
||||
|
||||
|
|
@ -20,7 +22,5 @@ class AssetCondition:
|
|||
install_date: Optional[date] = None
|
||||
renewal_year: Optional[int] = None
|
||||
|
||||
element_instance: Optional[int] = None
|
||||
|
||||
source_system: Optional[str] = None
|
||||
comments: Optional[str] = None
|
||||
|
|
|
|||
|
|
@ -10,3 +10,4 @@ class ElementMapping:
|
|||
element: Element
|
||||
aspect_type: AspectType
|
||||
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
|
||||
),
|
||||
(53, 23): ElementMapping(
|
||||
element=Element.PRIMARY_WALL, aspect_type=AspectType.FINISH
|
||||
element=Element.EXTERNAL_WALL, aspect_type=AspectType.FINISH
|
||||
),
|
||||
(53, 30): ElementMapping(
|
||||
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)):
|
||||
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