{ "total_tests": 24, "passed": 5, "failed": 19, "errors": [ "WebSocket /ws/pose - Exception: BaseEventLoop.create_connection() got an unexpected keyword argument 'timeout'", "WebSocket /ws/hardware - Exception: BaseEventLoop.create_connection() got an unexpected keyword argument 'timeout'" ], "test_details": [ { "test_name": "GET /health/health", "description": "System health check", "url": "http://localhost:8000/health/health", "method": "GET", "expected_status": 200, "actual_status": 200, "response_time_ms": 1017.05, "response_data": { "status": "unhealthy", "timestamp": "2025-06-07T12:27:19.698473", "uptime_seconds": 0.0, "components": { "hardware": { "name": "Hardware Service", "status": "unhealthy", "message": "Health check failed: 'HardwareService' object has no attribute 'health_check'", "last_check": "2025-06-07T12:27:19.698473", "uptime_seconds": null, "metrics": null }, "pose": { "name": "Pose Service", "status": "healthy", "message": "Service is running normally", "last_check": "2025-06-07T12:27:19.698473", "uptime_seconds": 0.0, "metrics": { "total_processed": 5314, "success_rate": 1.0, "average_processing_time_ms": 0.8020579601053834 } }, "stream": { "name": "Stream Service", "status": "unhealthy", "message": "Health check failed: 'StreamService' object has no attribute 'health_check'", "last_check": "2025-06-07T12:27:19.698473", "uptime_seconds": null, "metrics": null } }, "system_metrics": { "cpu": { "percent": 39.4, "count": 2 }, "memory": { "total_gb": 7.75, "available_gb": 2.98, "used_gb": 4.41, "percent": 61.6 }, "disk": { "total_gb": 31.33, "free_gb": 7.99, "used_gb": 21.72, "percent": 69.34 }, "network": { "bytes_sent": 3572468408, "bytes_recv": 36997029117, "packets_sent": 1132219, "packets_recv": 25723413 } } }, "success": true, "timestamp": "2025-06-07T12:27:20.703081" }, { "test_name": "GET /health/ready", "description": "Readiness check", "url": "http://localhost:8000/health/ready", "method": "GET", "expected_status": 200, "actual_status": 200, "response_time_ms": 2.5, "response_data": { "ready": false, "timestamp": "2025-06-07T12:27:20.705155", "checks": {}, "message": "Readiness check failed: 'HardwareService' object has no attribute 'is_ready'" }, "success": true, "timestamp": "2025-06-07T12:27:20.705747" }, { "test_name": "POST /pose/estimate", "description": "Basic pose estimation", "url": "http://localhost:8000/pose/estimate", "method": "POST", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.99, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/pose/estimate" } }, "success": false, "timestamp": "2025-06-07T12:27:20.706878" }, { "test_name": "POST /pose/estimate", "description": "Pose estimation with parameters", "url": "http://localhost:8000/pose/estimate", "method": "POST", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.89, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/pose/estimate" } }, "success": false, "timestamp": "2025-06-07T12:27:20.708132" }, { "test_name": "POST /pose/analyze", "description": "Pose analysis", "url": "http://localhost:8000/pose/analyze", "method": "POST", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.91, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/pose/analyze" } }, "success": false, "timestamp": "2025-06-07T12:27:20.709165" }, { "test_name": "GET /pose/zones/zone_1/occupancy", "description": "Zone occupancy", "url": "http://localhost:8000/pose/zones/zone_1/occupancy", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.78, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/pose/zones/zone_1/occupancy" } }, "success": false, "timestamp": "2025-06-07T12:27:20.710222" }, { "test_name": "GET /pose/zones/summary", "description": "All zones summary", "url": "http://localhost:8000/pose/zones/summary", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.84, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/pose/zones/summary" } }, "success": false, "timestamp": "2025-06-07T12:27:20.711403" }, { "test_name": "GET /pose/historical", "description": "Historical pose data", "url": "http://localhost:8000/pose/historical", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.83, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/pose/historical" } }, "success": false, "timestamp": "2025-06-07T12:27:20.712646" }, { "test_name": "GET /pose/activities/recent", "description": "Recent activities", "url": "http://localhost:8000/pose/activities/recent", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.9, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/pose/activities/recent" } }, "success": false, "timestamp": "2025-06-07T12:27:20.713667" }, { "test_name": "GET /calibration/status", "description": "Calibration status", "url": "http://localhost:8000/calibration/status", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.76, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/calibration/status" } }, "success": false, "timestamp": "2025-06-07T12:27:20.714763" }, { "test_name": "POST /calibration/start", "description": "Start calibration", "url": "http://localhost:8000/calibration/start", "method": "POST", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.87, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/calibration/start" } }, "success": false, "timestamp": "2025-06-07T12:27:20.715985" }, { "test_name": "GET /statistics", "description": "System statistics", "url": "http://localhost:8000/statistics", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.93, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/statistics" } }, "success": false, "timestamp": "2025-06-07T12:27:20.717073" }, { "test_name": "GET /hardware/status", "description": "Hardware status", "url": "http://localhost:8000/hardware/status", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.79, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/hardware/status" } }, "success": false, "timestamp": "2025-06-07T12:27:20.718166" }, { "test_name": "GET /hardware/routers", "description": "Router information", "url": "http://localhost:8000/hardware/routers", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.84, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/hardware/routers" } }, "success": false, "timestamp": "2025-06-07T12:27:20.719352" }, { "test_name": "GET /hardware/routers/main_router", "description": "Specific router info", "url": "http://localhost:8000/hardware/routers/main_router", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.79, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/hardware/routers/main_router" } }, "success": false, "timestamp": "2025-06-07T12:27:20.720486" }, { "test_name": "GET /stream/status", "description": "Stream status", "url": "http://localhost:8000/stream/status", "method": "GET", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.87, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/stream/status" } }, "success": false, "timestamp": "2025-06-07T12:27:20.721535" }, { "test_name": "POST /stream/start", "description": "Start streaming", "url": "http://localhost:8000/stream/start", "method": "POST", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.78, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/stream/start" } }, "success": false, "timestamp": "2025-06-07T12:27:20.722650" }, { "test_name": "POST /stream/stop", "description": "Stop streaming", "url": "http://localhost:8000/stream/stop", "method": "POST", "expected_status": 200, "actual_status": 404, "response_time_ms": 0.98, "response_data": { "error": { "code": 404, "message": "Not Found", "type": "http_error", "path": "/stream/stop" } }, "success": false, "timestamp": "2025-06-07T12:27:20.723750" }, { "test_name": "WebSocket /ws/pose", "description": "Pose data WebSocket", "url": "ws://localhost:8000/ws/pose", "method": "WebSocket", "response_time_ms": null, "response_data": null, "success": false, "error": "BaseEventLoop.create_connection() got an unexpected keyword argument 'timeout'", "traceback": "Traceback (most recent call last):\n File \"/workspaces/wifi-densepose/scripts/test_api_endpoints.py\", line 164, in test_websocket_endpoint\n async with websockets.connect(ws_url, timeout=5) as websocket:\n File \"/usr/local/python/3.12.1/lib/python3.12/site-packages/websockets/asyncio/client.py\", line 587, in __aenter__\n return await self\n ^^^^^^^^^^\n File \"/usr/local/python/3.12.1/lib/python3.12/site-packages/websockets/asyncio/client.py\", line 541, in __await_impl__\n self.connection = await self.create_connection()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/local/python/3.12.1/lib/python3.12/site-packages/websockets/asyncio/client.py\", line 467, in create_connection\n _, connection = await loop.create_connection(factory, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nTypeError: BaseEventLoop.create_connection() got an unexpected keyword argument 'timeout'\n", "timestamp": "2025-06-07T12:27:20.747316" }, { "test_name": "WebSocket /ws/hardware", "description": "Hardware status WebSocket", "url": "ws://localhost:8000/ws/hardware", "method": "WebSocket", "response_time_ms": null, "response_data": null, "success": false, "error": "BaseEventLoop.create_connection() got an unexpected keyword argument 'timeout'", "traceback": "Traceback (most recent call last):\n File \"/workspaces/wifi-densepose/scripts/test_api_endpoints.py\", line 164, in test_websocket_endpoint\n async with websockets.connect(ws_url, timeout=5) as websocket:\n File \"/usr/local/python/3.12.1/lib/python3.12/site-packages/websockets/asyncio/client.py\", line 587, in __aenter__\n return await self\n ^^^^^^^^^^\n File \"/usr/local/python/3.12.1/lib/python3.12/site-packages/websockets/asyncio/client.py\", line 541, in __await_impl__\n self.connection = await self.create_connection()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/usr/local/python/3.12.1/lib/python3.12/site-packages/websockets/asyncio/client.py\", line 467, in create_connection\n _, connection = await loop.create_connection(factory, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nTypeError: BaseEventLoop.create_connection() got an unexpected keyword argument 'timeout'\n", "timestamp": "2025-06-07T12:27:20.748123" }, { "test_name": "GET /docs", "description": "API documentation", "url": "http://localhost:8000/docs", "method": "GET", "expected_status": 200, "actual_status": 200, "response_time_ms": 1.71, "response_data": { "raw_response": "\n \n \n
\n \n \n