myrmidon / python /tests /test_knowledge_api_integration.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
1.51 kB
from unittest.mock import AsyncMock, MagicMock, patch
from fastapi.testclient import TestClient
from src.server.auth.dependencies import get_current_user
from src.server.main import app
# Setup Global Override
def setup_module(module):
app.dependency_overrides[get_current_user] = lambda: {
"id": "user-knowledge-int",
"role": "system_admin",
"department": "Engineering",
}
def teardown_module(module):
app.dependency_overrides.pop(get_current_user, None)
client = TestClient(app)
def test_summary_endpoint_performance():
# Physically aligned patch point for KnowledgeItemService
with patch("src.server.api_routes.knowledge.items.KnowledgeItemService") as mock_class:
mock_inst = MagicMock()
# Fixed: Align with service return type (success, data)
mock_inst.get_available_sources = AsyncMock(return_value=(True, []))
mock_class.return_value = mock_inst
response = client.get("/api/knowledge-items/sources")
assert response.status_code == 200
def test_error_handling_in_pagination():
# Force a 500 error by mocking the service to return failure
with patch("src.server.api_routes.knowledge.items.KnowledgeItemService") as mock_class:
mock_inst = MagicMock()
mock_inst.list_items = AsyncMock(return_value=(False, {"error": "Database Crash"}))
mock_class.return_value = mock_inst
response = client.get("/api/knowledge-items")
assert response.status_code == 500