diff --git a/backend/test_alertsystem.py b/backend/test_alertsystem.py index db57d2b..9429c48 100644 --- a/backend/test_alertsystem.py +++ b/backend/test_alertsystem.py @@ -1,7 +1,19 @@ import pytest import requests from unittest.mock import patch -from backend.alertsystem import fetch_gis_alert_data +from backend.alertsystem import fetch_gis_alert_data, app + +@pytest.fixture +def client(): + app.testing = True + + with app.test_client() as client: + yield client + +@patch.dict('os.environ', {}, clear=True) +def test_missing_api_key_returns_500(client): + response = client.post("/weather", json={"city": "DummyCity", "state": "DummyState", "country": "DummyCountry"}) + assert response.status_code == 500 @patch('requests.get') def test_gis_api_down_returns_503(mock_get): @@ -16,3 +28,17 @@ def test_gis_api_timeout_returns_504(mock_get): mock_get.side_effect = requests.exceptions.Timeout() response, status_code = fetch_gis_alert_data() assert status_code == 504 + +def test_weather_missing_fields_returns_400(client): + response = client.post("/weather", json={}) + assert response.status_code == 400 + +@patch.dict('os.environ', {'OPENWEATHER_API_KEY': 'dummy_key'}) +@patch('requests.get') +def test_location_not_found_returns_404(mock_get, client): + mock_response = mock_get.return_value + mock_response.raise_for_status.return_value = None + mock_response.json.return_value = [] + + response = client.post("/weather", json={"city": "dummyCity", "state": "dummyState", "country": "dummyCountry"}) + assert response.status_code == 404 \ No newline at end of file