Loading tests/ai_agent/test_error_codes.py +21 −21 Changes for tests/ai_agent/test_error_codes.py: 21 added lines, 21 removed lines. Original line number Diff line number Diff line import asyncio import importlib.util import pathlib import sys import unittest from unittest.mock import AsyncMock, patch import httpx Loading @@ -18,37 +18,37 @@ spec.loader.exec_module(ai_agent_app) app = ai_agent_app.app class AiAgentErrorCodeTests(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self) -> None: async def _make_request(method: str, path: str, **kwargs: object) -> httpx.Response: transport = httpx.ASGITransport(app=app) self.client = httpx.AsyncClient(transport=transport, base_url="http://test") async with httpx.AsyncClient(transport=transport, base_url="http://test") as client: return await client.request(method, path, **kwargs) async def asyncTearDown(self) -> None: await self.client.aclose() async def test_groq_query_missing_query_returns_400(self) -> None: response = await self.client.post("/groq-mcp", json={}) def test_groq_query_missing_query_returns_400() -> None: response = asyncio.run(_make_request("POST", "/groq-mcp", json={})) self.assertEqual(response.status_code, 400) self.assertEqual(response.json(), {"error": "No query provided"}) assert response.status_code == 400 assert response.json() == {"error": "No query provided"} async def test_groq_stream_missing_query_returns_400(self) -> None: response = await self.client.get("/groq-mcp/stream") self.assertEqual(response.status_code, 400) self.assertEqual(response.json(), {"error": "No query provided"}) def test_groq_stream_missing_query_returns_400() -> None: response = asyncio.run(_make_request("GET", "/groq-mcp/stream")) async def test_groq_query_agent_failure_returns_500(self) -> None: assert response.status_code == 400 assert response.json() == {"error": "No query provided"} def test_groq_query_agent_failure_returns_500() -> None: async def _run() -> httpx.Response: agent = AsyncMock() agent.run.side_effect = RuntimeError("backend failure") with patch("ai_agent.routes.groq.create_groq_agent", new=AsyncMock(return_value=agent)): response = await self.client.post("/groq-mcp", json={"query": "hello"}) response = await _make_request("POST", "/groq-mcp", json={"query": "hello"}) self.assertEqual(response.status_code, 500) self.assertEqual(response.json(), {"error": "backend failure"}) agent.close.assert_awaited_once() return response if __name__ == "__main__": unittest.main() response = asyncio.run(_run()) assert response.status_code == 500 assert response.json() == {"error": "backend failure"} tests/mcp_module/test_error_codes.py +10 −16 Changes for tests/mcp_module/test_error_codes.py: 10 added lines, 16 removed lines. Original line number Diff line number Diff line import asyncio import importlib.util import pathlib import sys import unittest import httpx Loading @@ -17,24 +17,18 @@ spec.loader.exec_module(mcp_module_app) app = mcp_module_app.app class McpModuleErrorCodeTests(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self) -> None: async def _make_request(method: str, path: str, **kwargs: object) -> httpx.Response: transport = httpx.ASGITransport(app=app) self.client = httpx.AsyncClient(transport=transport, base_url="http://test") async with httpx.AsyncClient(transport=transport, base_url="http://test") as client: return await client.request(method, path, **kwargs) async def asyncTearDown(self) -> None: await self.client.aclose() async def test_unknown_route_returns_404(self) -> None: response = await self.client.get("/does-not-exist") def test_unknown_route_returns_404() -> None: response = asyncio.run(_make_request("GET", "/does-not-exist")) self.assertEqual(response.status_code, 404) assert response.status_code == 404 async def test_health_trailing_slash_returns_404(self) -> None: response = await self.client.get("/health/") self.assertEqual(response.status_code, 404) if __name__ == "__main__": unittest.main() def test_health_trailing_slash_returns_404() -> None: response = asyncio.run(_make_request("GET", "/health/")) assert response.status_code == 404 Loading
tests/ai_agent/test_error_codes.py +21 −21 Changes for tests/ai_agent/test_error_codes.py: 21 added lines, 21 removed lines. Original line number Diff line number Diff line import asyncio import importlib.util import pathlib import sys import unittest from unittest.mock import AsyncMock, patch import httpx Loading @@ -18,37 +18,37 @@ spec.loader.exec_module(ai_agent_app) app = ai_agent_app.app class AiAgentErrorCodeTests(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self) -> None: async def _make_request(method: str, path: str, **kwargs: object) -> httpx.Response: transport = httpx.ASGITransport(app=app) self.client = httpx.AsyncClient(transport=transport, base_url="http://test") async with httpx.AsyncClient(transport=transport, base_url="http://test") as client: return await client.request(method, path, **kwargs) async def asyncTearDown(self) -> None: await self.client.aclose() async def test_groq_query_missing_query_returns_400(self) -> None: response = await self.client.post("/groq-mcp", json={}) def test_groq_query_missing_query_returns_400() -> None: response = asyncio.run(_make_request("POST", "/groq-mcp", json={})) self.assertEqual(response.status_code, 400) self.assertEqual(response.json(), {"error": "No query provided"}) assert response.status_code == 400 assert response.json() == {"error": "No query provided"} async def test_groq_stream_missing_query_returns_400(self) -> None: response = await self.client.get("/groq-mcp/stream") self.assertEqual(response.status_code, 400) self.assertEqual(response.json(), {"error": "No query provided"}) def test_groq_stream_missing_query_returns_400() -> None: response = asyncio.run(_make_request("GET", "/groq-mcp/stream")) async def test_groq_query_agent_failure_returns_500(self) -> None: assert response.status_code == 400 assert response.json() == {"error": "No query provided"} def test_groq_query_agent_failure_returns_500() -> None: async def _run() -> httpx.Response: agent = AsyncMock() agent.run.side_effect = RuntimeError("backend failure") with patch("ai_agent.routes.groq.create_groq_agent", new=AsyncMock(return_value=agent)): response = await self.client.post("/groq-mcp", json={"query": "hello"}) response = await _make_request("POST", "/groq-mcp", json={"query": "hello"}) self.assertEqual(response.status_code, 500) self.assertEqual(response.json(), {"error": "backend failure"}) agent.close.assert_awaited_once() return response if __name__ == "__main__": unittest.main() response = asyncio.run(_run()) assert response.status_code == 500 assert response.json() == {"error": "backend failure"}
tests/mcp_module/test_error_codes.py +10 −16 Changes for tests/mcp_module/test_error_codes.py: 10 added lines, 16 removed lines. Original line number Diff line number Diff line import asyncio import importlib.util import pathlib import sys import unittest import httpx Loading @@ -17,24 +17,18 @@ spec.loader.exec_module(mcp_module_app) app = mcp_module_app.app class McpModuleErrorCodeTests(unittest.IsolatedAsyncioTestCase): async def asyncSetUp(self) -> None: async def _make_request(method: str, path: str, **kwargs: object) -> httpx.Response: transport = httpx.ASGITransport(app=app) self.client = httpx.AsyncClient(transport=transport, base_url="http://test") async with httpx.AsyncClient(transport=transport, base_url="http://test") as client: return await client.request(method, path, **kwargs) async def asyncTearDown(self) -> None: await self.client.aclose() async def test_unknown_route_returns_404(self) -> None: response = await self.client.get("/does-not-exist") def test_unknown_route_returns_404() -> None: response = asyncio.run(_make_request("GET", "/does-not-exist")) self.assertEqual(response.status_code, 404) assert response.status_code == 404 async def test_health_trailing_slash_returns_404(self) -> None: response = await self.client.get("/health/") self.assertEqual(response.status_code, 404) if __name__ == "__main__": unittest.main() def test_health_trailing_slash_returns_404() -> None: response = asyncio.run(_make_request("GET", "/health/")) assert response.status_code == 404