Pavanupadhyay27 commited on
Commit
c64e5bb
·
1 Parent(s): cbeb130

Fix: Resolve TestClient hang in test_live_stream_auth_success by mocking StreamingResponse

Browse files
Files changed (1) hide show
  1. backend/app/tests/test_auth.py +8 -9
backend/app/tests/test_auth.py CHANGED
@@ -88,19 +88,18 @@ def test_live_stream_auth_failure(client):
88
  assert response.status_code == 401
89
 
90
  @patch("app.core.security.crud.get_user_by_email")
91
- @patch("app.api.v1.analytics.event_bus.subscribe")
92
- def test_live_stream_auth_success(mock_subscribe, mock_get_user, client):
93
  mock_role = models.Role(id=1, name="Super Admin")
94
  mock_user = models.User(id=1, email="admin@netraid.ai", is_active=True, role=mock_role)
95
  mock_get_user.return_value = mock_user
96
 
97
- # Pre-populate queue to prevent TestClient from hanging waiting for the first yield
98
- import asyncio
99
- q = asyncio.Queue()
100
- q.put_nowait({"type": "test"})
101
- mock_subscribe.return_value = q
102
 
103
  token = create_access_token(subject="admin@netraid.ai", role="Super Admin")
104
 
105
- with client.stream("GET", f"/api/v1/analytics/live-stream?token={token}") as response:
106
- assert response.status_code == 200
 
 
88
  assert response.status_code == 401
89
 
90
  @patch("app.core.security.crud.get_user_by_email")
91
+ @patch("app.api.v1.analytics.StreamingResponse")
92
+ def test_live_stream_auth_success(mock_streaming_response, mock_get_user, client):
93
  mock_role = models.Role(id=1, name="Super Admin")
94
  mock_user = models.User(id=1, email="admin@netraid.ai", is_active=True, role=mock_role)
95
  mock_get_user.return_value = mock_user
96
 
97
+ # Mock StreamingResponse to return a simple plain Response
98
+ from fastapi.responses import Response
99
+ mock_streaming_response.return_value = Response("streaming-mock", status_code=200)
 
 
100
 
101
  token = create_access_token(subject="admin@netraid.ai", role="Super Admin")
102
 
103
+ response = client.get(f"/api/v1/analytics/live-stream?token={token}")
104
+ assert response.status_code == 200
105
+ assert response.text == "streaming-mock"