diff --git a/infrastructure/abri/abri_client.py b/infrastructure/abri/abri_client.py index ab59a6fb2..a07da387f 100644 --- a/infrastructure/abri/abri_client.py +++ b/infrastructure/abri/abri_client.py @@ -226,15 +226,19 @@ class AbriClient: @staticmethod def _parse_tenancy_data(root: ET.Element) -> TenancyData: - tenancy = root.find("Tenancy") + tenancies = root.findall("Tenancy") - if tenancy is None: + if len(tenancies) != 1: raise AbriResponseParseError( - "Tenancy element missing from relay response" + f"expected exactly one Tenancy element, found {len(tenancies)}" ) + tenancy = tenancies[0] tenancy_reference = (tenancy.text or "").strip() + if not tenancy_reference: + raise AbriResponseParseError("Tenancy element missing its reference") + return TenancyData( tenancy_reference=tenancy_reference, tenants=tuple(