diff --git a/neon_api_proxy/services/owm_api.py b/neon_api_proxy/services/owm_api.py index b5b5973..2e6d7f7 100644 --- a/neon_api_proxy/services/owm_api.py +++ b/neon_api_proxy/services/owm_api.py @@ -92,6 +92,7 @@ def _get_api_response(self, lat: str, lng: str, units: str, f"is supported", "1.0.0") api = "onecall" assert units in ("metric", "imperial", "standard") + lang = lang.split('-')[0] # `de-de` is treated as `en` query_params = {"lat": lat, "lon": lng, "appid": self._api_key, diff --git a/tests/test_owm_api.py b/tests/test_owm_api.py index b9fa42f..d9a56f0 100644 --- a/tests/test_owm_api.py +++ b/tests/test_owm_api.py @@ -49,6 +49,16 @@ "lng": "-122.2060", "units": "imperial"} +VALID_QUERY_ES = {"lat": "47.6769", + "lng": "-122.2060", + "units": "imperial", + "lang": "es"} + +VALID_QUERY_ES_MX = {"lat": "47.6769", + "lng": "-122.2060", + "units": "imperial", + "lang": "es-mx"} + VALID_QUERY_ONECALL = {"lat": "47.6769", "lng": "-122.2060", "units": "imperial", @@ -105,6 +115,15 @@ def test_handle_query_valid(self): self.assertEqual(resp["encoding"], "utf-8") self.assertIsInstance(json.loads(resp["content"]), dict) + resp_es = self.api.handle_query(**VALID_QUERY_ES) + self.assertEqual(resp_es["status_code"], 200) + self.assertEqual(resp_es["encoding"], "utf-8") + self.assertIsInstance(json.loads(resp_es["content"]), dict) + self.assertNotEqual(resp, resp_es) + + resp_es_mx = self.api.handle_query(**VALID_QUERY_ES_MX) + self.assertEqual(resp_es, resp_es_mx) + def test_handle_query_valid_onecall(self): resp = self.api.handle_query(**VALID_QUERY_ONECALL) self.assertIsInstance(resp, dict)