Spaces:
Build error
Build error
| """Tests for admin cache management endpoint.""" | |
| import os | |
| import pytest | |
| from unittest.mock import patch, MagicMock, AsyncMock | |
| from fastapi.testclient import TestClient | |
| def client(): | |
| mock_drugbank = MagicMock() | |
| mock_drugbank.connect = AsyncMock() | |
| mock_drugbank.close = AsyncMock() | |
| mock_drugbank.health_check = AsyncMock(return_value=True) | |
| mock_severity = MagicMock() | |
| mock_severity.load_model = MagicMock() | |
| mock_severity.is_loaded.return_value = True | |
| with ( | |
| patch.dict(os.environ, {"API_KEY": "test-key"}), | |
| patch("app.main.drugbank_client", mock_drugbank), | |
| patch("app.main.severity_classifier", mock_severity), | |
| patch("app.main.ner_model"), | |
| patch("app.api.health.drugbank_client", mock_drugbank), | |
| patch("app.services.interaction_checker.drugbank_client", mock_drugbank), | |
| patch("app.services.interaction_checker.severity_classifier", mock_severity), | |
| ): | |
| from app.main import app | |
| yield TestClient(app) | |
| class TestAdminCacheClear: | |
| def test_clears_cache_with_valid_key(self, client): | |
| resp = client.post("/admin/cache/clear", headers={"X-API-Key": "test-key"}) | |
| assert resp.status_code == 200 | |
| assert resp.json()["status"] == "ok" | |
| def test_rejects_without_key(self, client): | |
| resp = client.post("/admin/cache/clear") | |
| assert resp.status_code == 401 | |