mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Extra test case, and note unhandled elements
This commit is contained in:
parent
4c16632b2f
commit
42cfcf604c
4 changed files with 188 additions and 5 deletions
|
|
@ -27,3 +27,4 @@ class AspectType(str, Enum):
|
|||
STRUCTURE = "structure"
|
||||
COVERING = "covering"
|
||||
FIRE_RATING = "fire_rating"
|
||||
EXTERNAL_DECORATION = "external_decoration"
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ PEABODY_ELEMENT_MAP = {
|
|||
# PROPERTY / GENERAL
|
||||
# ==========================================================
|
||||
(100, 1): ElementMapping(element=Element.PROPERTY, aspect_type=AspectType.TYPE),
|
||||
(100, 15): ElementMapping(
|
||||
element=Element.PROPERTY, aspect_type=AspectType.EXTERNAL_DECORATION
|
||||
),
|
||||
# (100, 3): ElementMapping(element=Element.PROPERTY, aspect_type=AspectType.AGE),
|
||||
# (100, 14): ElementMapping(element="property", aspect_type="construction_type"),
|
||||
# ==========================================================
|
||||
|
|
@ -52,3 +55,155 @@ PEABODY_ELEMENT_MAP = {
|
|||
element=Element.HHSRS_STRUCTURAL_COLLAPSE, aspect_type=AspectType.RISK
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
# unhandled
|
||||
# 'Element: ROOFS - Code: 110, Sub-Element: Chimney - Code: 3',
|
||||
# 'Element: ROOFS - Code: 110, Sub-Element: Fascia - Code: 4',
|
||||
# 'Element: ROOFS - Code: 110, Sub-Element: Rainwater Goods - Code: 6',
|
||||
# 'Element: WINDOWS - Code: 130, Sub-Element: Communal Windows - Code: 2',
|
||||
# 'Element: DOORS - Code: 140, Sub-Element: Main Doors - Code: 1',
|
||||
# 'Element: DOORS - Code: 140, Sub-Element: Block Entrance Doors - Code: 4',
|
||||
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Paving - Code: 1',
|
||||
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Boundaries - Code: 4',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Boiler - Code: 1',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Heating - Code: 2',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Electrics - Code: 3',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Fire Detection - Code: 4',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Floor Covering - Code: 6',
|
||||
# 'Element: ROOFS - Code: 110, Sub-Element: Soffit - Code: 5',
|
||||
# 'Element: External - Code: 53, Sub-Element: Window Type 01 - Code: 38',
|
||||
# 'Element: ROOFS - Code: 110, Sub-Element: Secondary Roof - Code: 2',
|
||||
# 'Element: HEATING - Code: 170, Sub-Element: Boiler - Code: 1',
|
||||
# 'Element: HEATING - Code: 170, Sub-Element: Heating Distribution - Code: 2',
|
||||
# 'Element: ELECTRICS - Code: 180, Sub-Element: Wiring - Code: 1',
|
||||
# 'Element: ELECTRICS - Code: 180, Sub-Element: Consumer Unit - Code: 2',
|
||||
# 'Element: ELECTRICS - Code: 180, Sub-Element: Smoke Detectors - Code: 3',
|
||||
# 'Element: KITCHEN - Code: 160, Sub-Element: Kitchen space and layout - Code: 2',
|
||||
# 'Element: HEATING - Code: 170, Sub-Element: Secondary Heating - Code: 3',
|
||||
# 'Element: BATHROOM - Code: 190, Sub-Element: Secondary Toilet - Code: 2',
|
||||
# 'Element: ELECTRICS - Code: 180, Sub-Element: Carbon Monoxide Alarms - Code: 4',
|
||||
# 'Element: ROOFS - Code: 110, Sub-Element: Porch/Bay/Canopy - Code: 8',
|
||||
# 'Element: HEATING - Code: 170, Sub-Element: Hot Water - Code: 5',
|
||||
# 'Element: DOORS - Code: 140, Sub-Element: Garage Doors - Code: 3',
|
||||
# 'Element: HEATING - Code: 170, Sub-Element: Cold Water - Code: 4',
|
||||
# 'Element: DOORS - Code: 140, Sub-Element: Store Doors - Code: 2',
|
||||
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Hardstanding - Code: 2',
|
||||
# 'Element: WALLS - Code: 120, Sub-Element: Wall Insulation - Code: 3',
|
||||
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Roads - Code: 3',
|
||||
# 'Element: ROOFS - Code: 110, Sub-Element: Loft Insulation - Code: 7',
|
||||
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Outbuilding - Code: 5',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Additional WC - Code: 1',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Carbon Monoxide Detector Type - Code: 2',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: CCU - Code: 3',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Central Heating Boiler - Code: 4',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Extractor Fan Bathroom - Code: 9',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Extractor Fan Kitchen - Code: 10',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Heat Detector Type - Code: 11',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Kitchen Type - Code: 14',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Primary Bathroom Type - Code: 18',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Smoke Detector Type - Code: 21',
|
||||
# 'Element: EXTERNAL AREAS - Code: 150, Sub-Element: Garage - Code: 6',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Lifts - Code: 5',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Kitchen - Code: 7',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Bathroom - Code: 8',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Toilets - Code: 9',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Wiring - Code: 24',
|
||||
# 'Element: External - Code: 53, Sub-Element: Front Door Material - Code: 8',
|
||||
# 'Element: External - Code: 53, Sub-Element: Primary Wall Finish - Code: 23',
|
||||
# 'Element: PASSENGER LIFTS - Code: 210, Sub-Element: Lift - Code: 2',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Heating Distribution Type - Code: 12',
|
||||
# 'Element: External - Code: 53, Sub-Element: Downpipes - Code: 3',
|
||||
# 'Element: External - Code: 53, Sub-Element: Fascia/Soffits/Bargeboards - Code: 6',
|
||||
# 'Element: External - Code: 53, Sub-Element: Gutters - Code: 15',
|
||||
# 'Element: External - Code: 53, Sub-Element: Paths & Hardstandings - Code: 18',
|
||||
# 'Element: External - Code: 53, Sub-Element: Pitched Roof Covering Material - Code: 21',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Secondary Bathroom Type - Code: 20',
|
||||
# 'Element: External - Code: 53, Sub-Element: Chimney - Code: 2',
|
||||
# 'Element: External - Code: 53, Sub-Element: External Decoration - Code: 4',
|
||||
# 'Element: COMMUNAL - Code: 200, Sub-Element: Communal Gates - Code: 10',
|
||||
# 'Element: GENERAL - Code: 100, Sub-Element: Property Age Band - Code: 3',
|
||||
# 'Element: GENERAL - Code: 100, Sub-Element: Construction Type - Code: 14',
|
||||
# 'Element: GENERAL - Code: 100, Sub-Element: Classification - Code: 16',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Balcony/Walkway - Code: 3',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Bin Store Doors - Code: 5',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Bin Store Walls - Code: 7',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Primary Entrance Material - Code: 28',
|
||||
# 'Element: External - Code: 53, Sub-Element: Parking Areas - Code: 17',
|
||||
# 'Element: External - Code: 53, Sub-Element: Front Fencing - Code: 9',
|
||||
# 'Element: External - Code: 53, Sub-Element: Retaining Walls - Code: 28',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Internal Decorations - Code: 20',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Internal Floor Finish - Code: 22',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Walkways Finish - Code: 36',
|
||||
# 'Element: External - Code: 53, Sub-Element: Boundary Walls - Code: 1',
|
||||
# 'Element: External - Code: 53, Sub-Element: Flat Roof Covering Material - Code: 7',
|
||||
# 'Element: External - Code: 53, Sub-Element: Porch/Canopy - Code: 22',
|
||||
# 'Element: External - Code: 53, Sub-Element: Private Balcony - Code: 24',
|
||||
# 'Element: External - Code: 53, Sub-Element: Rear Gate - Code: 27',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common External Doors Other - Code: 17',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Stair Finish - Code: 32',
|
||||
# 'Element: External - Code: 53, Sub-Element: Front Gate - Code: 10',
|
||||
# 'Element: External - Code: 53, Sub-Element: Rear Fencing - Code: 26',
|
||||
# 'Element: External - Code: 53, Sub-Element: Side Fencing - Code: 31',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Aerial - Code: 1',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common AOV - Code: 2',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Door Entry System - Code: 14',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Fire Alarm - Code: 19',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Internal Doors - Code: 21',
|
||||
# 'Element: External - Code: 53, Sub-Element: Store Door Material - Code: 35',
|
||||
# 'Element: External - Code: 53, Sub-Element: Secondary Wall Finish - Code: 30',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Emergency Lighting - Code: 16',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Lateral Mains - Code: 24',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Lighting - Code: 25',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Store Roof - Code: 34',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Store Walls - Code: 35',
|
||||
# 'Element: External - Code: 53, Sub-Element: Cladding Material - Code: 41',
|
||||
# 'Element: External - Code: 53, Sub-Element: Spandrel Panels - Code: 40',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common CCTV - Code: 11',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Kitchen - Code: 23',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Secondary Entrance Material - Code: 30',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Warden Call System - Code: 37',
|
||||
# 'Element: External - Code: 53, Sub-Element: Lintels - Code: 16',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Boiler - Code: 9',
|
||||
# 'Element: External - Code: 53, Sub-Element: Soil & Vent Material - Code: 32',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Passenger Lift - Code: 27',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Store Doors - Code: 33',
|
||||
# 'Element: External - Code: 53, Sub-Element: Window Type 02 - Code: 39',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common BMS - Code: 8',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Booster Pump - Code: 10',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Dry Riser - Code: 15',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Lightning Conductor - Code: 26',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Bin Store Roof - Code: 6',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Bathroom - Code: 4',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common WC - Code: 38',
|
||||
# 'Element: External - Code: 53, Sub-Element: Wall Insulation - Code: 36',
|
||||
# 'Element: External - Code: 53, Sub-Element: Garage Door - Code: 12',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Cold Water Storage Tank - Code: 13',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Sprinker - Code: 31',
|
||||
# 'Element: External - Code: 53, Sub-Element: Garage Walls - Code: 14',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Communal Plug Sockets - Code: 40',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Wet Riser - Code: 39',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Refuse Chute - Code: 29',
|
||||
# 'Element: External - Code: 53, Sub-Element: Secondary Glazing - Code: 29',
|
||||
# 'Element: External - Code: 53, Sub-Element: Solar Thermals - Code: 34',
|
||||
# 'Element: External - Code: 53, Sub-Element: Garage Roof - Code: 13',
|
||||
# 'Element: External - Code: 53, Sub-Element: Patio/French Door - Code: 19',
|
||||
# 'Element: External - Code: 53, Sub-Element: Rear Door Material - Code: 25',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Party Wall Fire Break - Code: 16',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Boiler Type - Code: 25',
|
||||
# 'Element: External - Code: 53, Sub-Element: Roof Structure - Code: 47',
|
||||
# 'Element: External - Code: 53, Sub-Element: Front Door Type - Code: 43',
|
||||
# 'Element: Communal - Code: 51, Sub-Element: Common Cirulation Space - Code: 12',
|
||||
# 'Element: External - Code: 53, Sub-Element: External Noise Insulation - Code: 5',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Door Entry Handset - Code: 8',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Cold Water Storage Tank - Code: 6',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Programmable Heating - Code: 19',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Central Heating Extent - Code: 5',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Kitchen Space & Layout - Code: 13',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Loft Insulation - Code: 15',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Stairlift - Code: 22',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Primary Bathroom Location - Code: 17',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Disabled Hoist Tracking - Code: 7',
|
||||
# 'Element: External - Code: 53, Sub-Element: Garage Type - Code: 44',
|
||||
# 'Element: External - Code: 53, Sub-Element: Private Balcony Balustrade Material - Code: 45',
|
||||
# 'Element: Internal - Code: 50, Sub-Element: Disabled Facilities - Code: 26'
|
||||
|
|
|
|||
|
|
@ -6,9 +6,6 @@ from backend.condition.domain.mapping.peabody.peabody_element_map import (
|
|||
PEABODY_ELEMENT_MAP,
|
||||
)
|
||||
from backend.condition.domain.mapping.mapper import Mapper
|
||||
from backend.condition.parsing.records.peabody.peabody_asset_condition import (
|
||||
PeabodyAssetCondition,
|
||||
)
|
||||
from backend.condition.parsing.records.peabody.peabody_property import PeabodyProperty
|
||||
from utils.logger import setup_logger
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,25 @@ def test_peabody_mapper_maps_property():
|
|||
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=100,
|
||||
element="GENERAL",
|
||||
sub_element_code=15,
|
||||
sub_element="External Decoration",
|
||||
material_code=2,
|
||||
material_or_answer="Normal",
|
||||
renewal_quantity=1,
|
||||
renewal_year=2029,
|
||||
renewal_cost=1500,
|
||||
cloned="N",
|
||||
lo_type_code=1,
|
||||
condition_survey_date=datetime(2024, 2, 15, 12, 47, 0),
|
||||
),
|
||||
],
|
||||
)
|
||||
mapper = PeabodyMapper()
|
||||
|
|
@ -50,7 +68,19 @@ def test_peabody_mapper_maps_property():
|
|||
element_instance=None,
|
||||
source_system=None,
|
||||
comments=None,
|
||||
)
|
||||
),
|
||||
AssetCondition(
|
||||
uprn=1,
|
||||
element=Element.PROPERTY,
|
||||
aspect_type=AspectType.EXTERNAL_DECORATION,
|
||||
value="Normal",
|
||||
quantity=1,
|
||||
install_date=None,
|
||||
renewal_year=2029,
|
||||
element_instance=None,
|
||||
source_system=None,
|
||||
comments=None,
|
||||
),
|
||||
]
|
||||
# act
|
||||
actual_assets = mapper.map_asset_conditions_for_property(peabody_property)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue