Skip to content

Commit 88f471f

Browse files
feat: raise exception if zero datasets fetched from registry
1 parent 66c7867 commit 88f471f

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

oc4ids_datastore_pipeline/registry.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@ def fetch_registered_datasets() -> dict[str, str]:
2222
}
2323
registered_datasets_count = len(registered_datasets)
2424
logger.info(f"Fetched URLs for {registered_datasets_count} datasets")
25-
return registered_datasets
2625
except Exception as e:
2726
raise Exception("Failed to fetch datasets list from registry", e)
27+
if registered_datasets_count < 1:
28+
raise Exception(
29+
"Zero datasets returned from registry, likely an upstream error"
30+
)
31+
return registered_datasets
2832

2933

3034
def fetch_license_mappings() -> dict[str, str]:

tests/test_registry.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,20 @@ def test_fetch_registered_datasets_raises_failure_exception(
3838
assert "Mocked exception" in str(exc_info.value)
3939

4040

41+
def test_fetch_registered_datasets_raises_exception_when_no_datasets(
42+
mocker: MockerFixture,
43+
) -> None:
44+
mock_response = MagicMock()
45+
mock_response.json.return_value = {"records": {}}
46+
patch_get = mocker.patch("oc4ids_datastore_pipeline.pipeline.requests.get")
47+
patch_get.return_value = mock_response
48+
49+
with pytest.raises(Exception) as exc_info:
50+
fetch_registered_datasets()
51+
52+
assert "Zero datasets returned from registry" in str(exc_info.value)
53+
54+
4155
def test_fetch_license_mappings(mocker: MockerFixture) -> None:
4256
mock_response = MagicMock()
4357
mock_response.json.return_value = {

0 commit comments

Comments
 (0)