From 1807efff48dbc195d44072dfb8644cf2c8920d6c Mon Sep 17 00:00:00 2001 From: thorbjoernl <51087536+thorbjoernl@users.noreply.github.com> Date: Thu, 20 Feb 2025 11:47:50 +0100 Subject: [PATCH] fix: fix for pyaerocom tests to pass --- .../jsondb/backwards_compatibility.py | 11 +++++++++- src/aerovaldb/jsondb/jsonfiledb.py | 2 +- tests/jsondb/test_jsonfiledb.py | 21 ++++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/aerovaldb/jsondb/backwards_compatibility.py b/src/aerovaldb/jsondb/backwards_compatibility.py index 0a3aeb7..a4fd838 100644 --- a/src/aerovaldb/jsondb/backwards_compatibility.py +++ b/src/aerovaldb/jsondb/backwards_compatibility.py @@ -26,14 +26,23 @@ def post_process_maps_args_kwargs( def post_process_timeseries_args_kwargs( - args: dict[str, str], kwargs: dict[str, str] + args: dict[str, str], kwargs: dict[str, str], *, version ) -> tuple[dict[str, str], dict[str, str]]: + if version >= Version("0.26.0"): + return args, kwargs + if "-" in args["obsvar"]: splt = args["obsvar"].split("-") args["obsvar"] = splt[-1] args["network"] = args["network"] + f"-{'-'.join(splt[:-1])}" + if "_" in args["network"]: + splt = args["network"].split("_") + args["network"] = splt[-1] + + args["location"] = args["location"] + f"_{'_'.join(splt[:-1])}" + return args, kwargs diff --git a/src/aerovaldb/jsondb/jsonfiledb.py b/src/aerovaldb/jsondb/jsonfiledb.py index 24ad152..e8e6bcd 100644 --- a/src/aerovaldb/jsondb/jsonfiledb.py +++ b/src/aerovaldb/jsondb/jsonfiledb.py @@ -512,7 +512,7 @@ async def _get_uri_for_file(self, file_path: str) -> str: ) elif route in [ROUTE_TIMESERIES, ROUTE_TIMESERIES_WEEKLY]: route_args, kwargs = post_process_timeseries_args_kwargs( - route_args, kwargs + route_args, kwargs, version=version ) elif route == ROUTE_HEATMAP_TIMESERIES: route_args, kwargs = post_process_heatmap_ts_args_kwargs( diff --git a/tests/jsondb/test_jsonfiledb.py b/tests/jsondb/test_jsonfiledb.py index aaf029b..26d22ea 100644 --- a/tests/jsondb/test_jsonfiledb.py +++ b/tests/jsondb/test_jsonfiledb.py @@ -66,7 +66,26 @@ def test_get_uri_with_dashes(tmp_path, mocker): ) -def test_get_uri_with_underscore_region(tmp_path, mocker): +def test_get_uri_with_underscore_region1(tmp_path, mocker): + mocker.patch.object(AerovalJsonFileDB, "_get_version", mock_version_provider) + with aerovaldb.open(f"json_files:{tmp_path}") as db: + db.put_timeseries( + {}, + "project", + "experiment", + "Amsterdam_Island", + "AERONET-Sun", + "od550aer", + "Column", + ) + + assert ( + db.list_all()[0] + == "/v0/ts/project/experiment/Amsterdam%2Island/AERONET-Sun/od550aer/Column?version=0.25.0" + ) + + +def test_get_uri_with_underscore_region2(tmp_path, mocker): mocker.patch.object(AerovalJsonFileDB, "_get_version", mock_version_provider) with aerovaldb.open(f"json_files:{tmp_path}") as db: db.put_heatmap_timeseries(