diff --git a/tests/test_10_catalogue.py b/tests/test_10_catalogue.py new file mode 100644 index 0000000..1be4a45 --- /dev/null +++ b/tests/test_10_catalogue.py @@ -0,0 +1,67 @@ +from __future__ import annotations + +import pytest +import responses + +from datapi import Collection + +COLLECTION_URL = ( + "http://localhost:8080/api/catalogue/v1/collections/reanalysis-era5-pressure-levels" +) +COLLECTION_JSON = { + "id": "reanalysis-era5-pressure-levels", + "extent": { + "spatial": {"bbox": [[0.0, -89.0, 360.0, 89.0]]}, + "temporal": {"interval": [["1959-01-01T00:00:00Z", "2025-01-10T00:00:00Z"]]}, + }, +} + + +@pytest.fixture +@responses.activate +def collection() -> Collection: + responses.add( + responses.GET, + COLLECTION_URL, + json=COLLECTION_JSON, + status=200, + content_type="application/json", + ) + return Collection.from_request( + "get", + COLLECTION_URL, + headers={}, + session=None, + retry_options={"maximum_tries": 1}, + request_options={}, + download_options={}, + sleep_max=120, + cleanup=False, + log_callback=None, + ) + + +def test_catalogue_collection_begin_datetime(collection: Collection) -> None: + assert collection.begin_datetime is not None + assert collection.begin_datetime.isoformat() == "1959-01-01T00:00:00+00:00" + + +def test_catalogue_collection_end_datetime(collection: Collection) -> None: + assert collection.end_datetime is not None + assert collection.end_datetime.isoformat() == "2025-01-10T00:00:00+00:00" + + +def test_catalogue_collection_bbox(collection: Collection) -> None: + assert collection.bbox == (0, -89, 360, 89) + + +def test_catalogue_collection_id(collection: Collection) -> None: + assert collection.id == "reanalysis-era5-pressure-levels" + + +def test_catalogue_collection_json(collection: Collection) -> None: + assert collection.json == COLLECTION_JSON + + +def test_catalogue_collection_url(collection: Collection) -> None: + assert collection.url == COLLECTION_URL