From d82b4c880ff55f4b0087943ffaf23cdd2918ffa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mauro=20Cebri=C3=A1=20Berbegal?= Date: Tue, 21 Jan 2025 13:47:06 +0100 Subject: [PATCH] * fix: resource calls * test: add resource calls tests --- CHANGELOG.md | 2 ++ geoserver/geoserver.py | 8 ++++---- tests/test_geoserver.py | 21 ++++++++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bdd9bb..5e423c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 #### Fixed +- Fix resource calls endpoints (#16). + #### Added - Added CI/CD pipeline for pre-commit, tests... diff --git a/geoserver/geoserver.py b/geoserver/geoserver.py index 54432d8..971d5bc 100755 --- a/geoserver/geoserver.py +++ b/geoserver/geoserver.py @@ -2159,7 +2159,7 @@ def get_resource( geoserver.get_resource(resource="styles/default_point.sld", operation="default") ``` """ - url = f"{self.service_url}/rest/resources/{path}.{format}" + url = f"{self.service_url}/rest/resource/{path}" params = dict(operation=operation, format="json") response = self._request(method="get", url=url, params=params) return response.json() if format == "json" else response.text @@ -2175,7 +2175,7 @@ def update_resource(self, path: str, body: Union[str, Dict[str, Any]]) -> str: Returns: Success message. """ - url = f"{self.service_url}/rest/resources/{path}" + url = f"{self.service_url}/rest/resource/{path}" self._request(method="put", url=url, body=body) return UPDATED_MESSAGE @@ -2188,7 +2188,7 @@ def delete_resource(self, path: str) -> str: Returns: Success message. """ - url = f"{self.service_url}/rest/resources/{path}" + url = f"{self.service_url}/rest/resource/{path}" self._request(method="delete", url=url) return DELETED_MESSAGE @@ -2201,7 +2201,7 @@ def resource_exists(self, path: str) -> bool: Returns: Success message. """ - url = f"{self.service_url}/rest/resources/{path}" + url = f"{self.service_url}/rest/resource/{path}" response = self._request(method="head", url=url, ignore=[404]) return response.status_code == 200 diff --git a/tests/test_geoserver.py b/tests/test_geoserver.py index 91a73d7..943c9d0 100755 --- a/tests/test_geoserver.py +++ b/tests/test_geoserver.py @@ -873,24 +873,31 @@ def test_reload(test_geoserver: GeoServer) -> None: # Resources -@pytest.mark.skip("Not implemented yet.") @pytest.mark.skipif(not GEOSERVER_RUNNING, reason=f"No GeoServer running at {GEOSERVER_URL!r}.") -def test_get_resource(test_geoserver: GeoServer) -> None: ... +def test_get_resource(test_geoserver: GeoServer, test_workspace: str) -> None: + path = f"data/{test_workspace}" + data = test_geoserver.get_resource(path) + assert isinstance(data, dict) -@pytest.mark.skip("Not implemented yet.") @pytest.mark.skipif(not GEOSERVER_RUNNING, reason=f"No GeoServer running at {GEOSERVER_URL!r}.") -def test_update_resource(test_geoserver: GeoServer) -> None: ... +def test_head_resource(test_geoserver: GeoServer, test_workspace: str) -> None: + path = f"data/{test_workspace}" + data = test_geoserver.resource_exists(path) + assert isinstance(data, bool) + assert data @pytest.mark.skip("Not implemented yet.") @pytest.mark.skipif(not GEOSERVER_RUNNING, reason=f"No GeoServer running at {GEOSERVER_URL!r}.") -def test_delete_resource(test_geoserver: GeoServer) -> None: ... +def test_update_resource(test_geoserver: GeoServer) -> None: ... -@pytest.mark.skip("Not implemented yet.") @pytest.mark.skipif(not GEOSERVER_RUNNING, reason=f"No GeoServer running at {GEOSERVER_URL!r}.") -def test_head_resource(test_geoserver: GeoServer) -> None: ... +def test_delete_resource(test_geoserver: GeoServer, test_workspace: str, test_coverage: str) -> None: + path = f"data/{test_workspace}/{test_coverage}" + msg = test_geoserver.delete_resource(path) + assert isinstance(msg, str) # Security