From 6a095a2cf2f48b4439fe2acf08e785722159f36d Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Mon, 29 Jun 2026 14:46:22 +0000 Subject: [PATCH] =?UTF-8?q?Return=20empty=20list=20for=20a=20postcode=20wi?= =?UTF-8?q?th=20no=20historic=20EPC=20shard=20=F0=9F=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- .../test_historic_epc_s3_repository.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/repositories/historic_epc/test_historic_epc_s3_repository.py b/tests/repositories/historic_epc/test_historic_epc_s3_repository.py index 4524d75af..7bebcb651 100644 --- a/tests/repositories/historic_epc/test_historic_epc_s3_repository.py +++ b/tests/repositories/historic_epc/test_historic_epc_s3_repository.py @@ -13,6 +13,7 @@ from contextlib import contextmanager from unittest.mock import patch import pandas as pd +from botocore.exceptions import ClientError from backend.utils.addressMatch import AddressMatch from datatypes.epc.domain.historic_epc import HistoricEpc @@ -56,3 +57,20 @@ def test_get_for_postcode_maps_reader_rows_to_historic_epc_records(): assert isinstance(records[0], HistoricEpc) assert records[0].address == "47 GORDON ROAD" assert records[0].uprn == "100" + + +def test_valid_postcode_with_no_stored_object_returns_empty_list(): + # Arrange — a valid postcode whose shard does not exist in S3. + def missing(bucket: str, key: str) -> pd.DataFrame: + raise ClientError( + {"Error": {"Code": "NoSuchKey", "Message": "missing"}}, "GetObject" + ) + + repo = HistoricEpcS3Repository(read_csv_gz=missing) + + # Act + with _valid_postcode(): + records = repo.get_for_postcode("AB33 8AL") + + # Assert — a miss is the normal, expected outcome, not an exception. + assert records == []