From 49becf1ada607eac2fe6f5530cafb5eaca28e2cf Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Mon, 29 Jun 2026 14:47:50 +0000 Subject: [PATCH] =?UTF-8?q?Raise=20PostcodeNotFound=20for=20an=20unusable?= =?UTF-8?q?=20postcode=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 | 20 +++++++++++++++++++ 1 file changed, 20 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 2f84d7e65..509fcf0fd 100644 --- a/tests/repositories/historic_epc/test_historic_epc_s3_repository.py +++ b/tests/repositories/historic_epc/test_historic_epc_s3_repository.py @@ -18,6 +18,7 @@ from botocore.exceptions import ClientError from backend.utils.addressMatch import AddressMatch from datatypes.epc.domain.historic_epc import HistoricEpc +from repositories.historic_epc.historic_epc_repository import PostcodeNotFound from repositories.historic_epc.historic_epc_s3_repository import ( HistoricEpcS3Repository, ) @@ -108,3 +109,22 @@ def test_non_missing_read_error_propagates(): with _valid_postcode(): with pytest.raises(ClientError): repo.get_for_postcode("AB33 8AL") + + +def test_empty_postcode_raises_postcode_not_found(): + # Arrange + repo = HistoricEpcS3Repository(read_csv_gz=lambda bucket, key: _df([])) + + # Act / Assert — an unusable key, distinct from a valid-but-absent postcode. + with pytest.raises(PostcodeNotFound): + repo.get_for_postcode(" ") + + +def test_invalid_postcode_raises_postcode_not_found(): + # Arrange + repo = HistoricEpcS3Repository(read_csv_gz=lambda bucket, key: _df([])) + + # Act / Assert + with patch.object(AddressMatch, "is_valid_postcode", return_value=False): + with pytest.raises(PostcodeNotFound): + repo.get_for_postcode("NONSENSE")