From 3ccb2d4dd860f5c52619e91adeea653bee21c401 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Thu, 9 Apr 2026 00:17:00 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(backend)=20fix=20Twirp=20err?= =?UTF-8?q?or=20mocking=20in=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tests were incorrectly mocking Twirp errors using HTTP status codes instead of the meaningful error codes returned by the LiveKit SDK. Update mocks to reflect actual SDK behavior. --- CHANGELOG.md | 3 +++ .../tests/rooms/test_api_rooms_participants_management.py | 6 +++--- src/backend/core/tests/rooms/test_api_rooms_subtitle.py | 2 +- src/backend/core/tests/services/test_telephony_service.py | 8 ++++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14d1f5c0..74c9e7f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,12 +19,15 @@ and this project adheres to - ⬆️(backend) bump lodash from 4.17.23 to 4.18.1 in /src/mail - ⬆️(frontend) bump hono from 4.12.8 to 4.12.12 in /src/frontend - ⬆️(backend) bump pygments from 2.19.2 to 2.20.0 in /src/backend +- ♻️(backend) use Authorization header for LiveKit token authentication +- 🥅(backend) refine Twirp error handling for participant operations ### Fixed - ⬆️(dependencies) update aiohttp to v3.13.4 [SECURITY] - ⬆️(dependencies) update vite to v7.3.2 [SECURITY] - ⬆️(dependencies) update django to v5.2.13 [SECURITY] +- 🔒(backend) rely on backend to allow participant update their metadata ## [1.13.0] - 2026-03-31 diff --git a/src/backend/core/tests/rooms/test_api_rooms_participants_management.py b/src/backend/core/tests/rooms/test_api_rooms_participants_management.py index c325c96a..f9d17024 100644 --- a/src/backend/core/tests/rooms/test_api_rooms_participants_management.py +++ b/src/backend/core/tests/rooms/test_api_rooms_participants_management.py @@ -91,7 +91,7 @@ def test_mute_participant_unexpected_twirp_error(mock_livekit_client): client = APIClient() mock_livekit_client.room.mute_published_track.side_effect = TwirpError( - msg="Internal server error", code=500, status=500 + msg="Internal server error", code="unknown", status=500 ) room = RoomFactory() @@ -387,7 +387,7 @@ def test_update_participant_unexpected_twirp_error(mock_livekit_client): client = APIClient() mock_livekit_client.room.update_participant.side_effect = TwirpError( - msg="Internal server error", code=500, status=500 + msg="Internal server error", code="unknown", status=500 ) room = RoomFactory() @@ -526,7 +526,7 @@ def test_remove_participant_unexpected_twirp_error(mock_livekit_client): client = APIClient() mock_livekit_client.room.remove_participant.side_effect = TwirpError( - msg="Internal server error", code=500, status=500 + msg="Internal server error", code="unknown", status=500 ) room = RoomFactory() diff --git a/src/backend/core/tests/rooms/test_api_rooms_subtitle.py b/src/backend/core/tests/rooms/test_api_rooms_subtitle.py index 2a9fe216..6c4923d8 100644 --- a/src/backend/core/tests/rooms/test_api_rooms_subtitle.py +++ b/src/backend/core/tests/rooms/test_api_rooms_subtitle.py @@ -172,7 +172,7 @@ def test_start_subtitle_twirp_error( client = APIClient() mock_livekit_client.agent_dispatch.create_dispatch.side_effect = TwirpError( - msg="Internal server error", code=500, status=500 + msg="Internal server error", code="unknown", status=500 ) response = client.post( diff --git a/src/backend/core/tests/services/test_telephony_service.py b/src/backend/core/tests/services/test_telephony_service.py index 96551252..c1b6a0aa 100644 --- a/src/backend/core/tests/services/test_telephony_service.py +++ b/src/backend/core/tests/services/test_telephony_service.py @@ -72,7 +72,7 @@ def test_create_dispatch_rule_api_failure(mock_client_factory): mock_api = create_mock_livekit_client() mock_api.sip.create_sip_dispatch_rule = mock.AsyncMock( - side_effect=TwirpError(msg="Internal server error", code=500, status=500) + side_effect=TwirpError(msg="Internal server error", code="unknown", status=500) ) mock_client_factory.return_value = mock_api @@ -177,7 +177,7 @@ def test_list_dispatch_rules_ids_api_failure(mock_client_factory): mock_api = create_mock_livekit_client() mock_api.sip.list_sip_dispatch_rule = mock.AsyncMock( - side_effect=TwirpError(msg="Internal server error", code=500, status=500) + side_effect=TwirpError(msg="Internal server error", code="unknown", status=500) ) mock_client_factory.return_value = mock_api @@ -270,7 +270,7 @@ def test_delete_dispatch_rule_partial_failure(mock_client_factory, mock_list_rul if call_count == 0: call_count += 1 return None - raise TwirpError(msg="Deletion failed", code=500, status=500) + raise TwirpError(msg="Deletion failed", code="unknown", status=500) mock_api.sip.delete_sip_dispatch_rule = mock.AsyncMock( side_effect=delete_side_effect @@ -294,7 +294,7 @@ def test_delete_dispatch_rule_api_failure(mock_client_factory, mock_list_rules): mock_list_rules.return_value = ["rule-1"] mock_api = create_mock_livekit_client() mock_api.sip.delete_sip_dispatch_rule = mock.AsyncMock( - side_effect=TwirpError(msg="Internal server error", code=500, status=500) + side_effect=TwirpError(msg="Internal server error", code="unknown", status=500) ) mock_client_factory.return_value = mock_api