From a9014650d6fa622851835d2594eee67ab40bfab0 Mon Sep 17 00:00:00 2001 From: Ishaan Jaffer Date: Sat, 11 Apr 2026 12:16:44 -0700 Subject: [PATCH] fix(tests/elevenlabs): assert lowercase 'true' for bool form data in diarize test --- tests/llm_translation/test_elevenlabs.py | 110 +++++++++++++---------- 1 file changed, 65 insertions(+), 45 deletions(-) diff --git a/tests/llm_translation/test_elevenlabs.py b/tests/llm_translation/test_elevenlabs.py index 5128cd973e8..2ba6e2564ea 100644 --- a/tests/llm_translation/test_elevenlabs.py +++ b/tests/llm_translation/test_elevenlabs.py @@ -27,42 +27,46 @@ class TestElevenLabsAudioTranscription(BaseLLMAudioTranscriptionTest): def test_elevenlabs_diarize_parameter_passthrough(self): """ - Test that provider-specific parameters like diarize=True get passed through + Test that provider-specific parameters like diarize=True get passed through to the ElevenLabs request form data. """ # Mock successful response mock_response = MagicMock() mock_response.status_code = 200 - mock_response.text = '{"text": "Four score and seven years ago", "language_code": "en"}' + mock_response.text = ( + '{"text": "Four score and seven years ago", "language_code": "en"}' + ) mock_response.json.return_value = { "text": "Four score and seven years ago", "language_code": "en", "words": [ {"type": "word", "text": "Four", "start": 0.0, "end": 0.5}, - {"type": "word", "text": "score", "start": 0.5, "end": 1.0} - ] + {"type": "word", "text": "score", "start": 0.5, "end": 1.0}, + ], } - + # Create a mock audio file audio_content = b"fake audio data" - + captured_request_data = {} - + def mock_post(*args, **kwargs): # Capture the request data for verification - captured_request_data.update({ - 'url': kwargs.get('url'), - 'data': kwargs.get('data'), - 'files': kwargs.get('files'), - 'headers': kwargs.get('headers'), - 'json': kwargs.get('json') - }) + captured_request_data.update( + { + "url": kwargs.get("url"), + "data": kwargs.get("data"), + "files": kwargs.get("files"), + "headers": kwargs.get("headers"), + "json": kwargs.get("json"), + } + ) return mock_response - + # Mock the HTTPHandler.post method which is what actually makes the request from litellm.llms.custom_httpx.http_handler import HTTPHandler - - with patch.object(HTTPHandler, 'post', side_effect=mock_post): + + with patch.object(HTTPHandler, "post", side_effect=mock_post): try: result = litellm.transcription( model="elevenlabs/scribe_v1", @@ -70,49 +74,65 @@ class TestElevenLabsAudioTranscription(BaseLLMAudioTranscriptionTest): diarize=True, # This should be passed through to the form data language="en", # This should be mapped to language_code temperature=0.5, # This should also be passed through - custom_param="test_value" # This should also be passed through + custom_param="test_value", # This should also be passed through ) - + # Verify the request was made with correct form data - assert 'speech-to-text' in captured_request_data['url'] - + assert "speech-to-text" in captured_request_data["url"] + # Check that form data contains the expected parameters - form_data = captured_request_data['data'] + form_data = captured_request_data["data"] assert form_data is not None, "Form data should not be None" - + print(f"✅ Captured form data: {form_data}") - + # Check basic required parameters - assert 'model_id' in form_data, "model_id should be in form data" - assert form_data['model_id'] == 'scribe_v1', f"Expected model_id 'scribe_v1', got {form_data['model_id']}" - + assert "model_id" in form_data, "model_id should be in form data" + assert ( + form_data["model_id"] == "scribe_v1" + ), f"Expected model_id 'scribe_v1', got {form_data['model_id']}" + # Check that diarize parameter is passed through - assert 'diarize' in form_data, f"diarize should be in form data. Got: {list(form_data.keys())}" - assert form_data['diarize'] == 'True', f"Expected diarize='True', got {form_data['diarize']}" - + assert ( + "diarize" in form_data + ), f"diarize should be in form data. Got: {list(form_data.keys())}" + assert ( + form_data["diarize"] == "true" + ), f"Expected diarize='true', got {form_data['diarize']}" + # Check that OpenAI language parameter is mapped correctly - assert 'language_code' in form_data, "language_code should be in form data" - assert form_data['language_code'] == 'en', f"Expected language_code='en', got {form_data['language_code']}" - + assert ( + "language_code" in form_data + ), "language_code should be in form data" + assert ( + form_data["language_code"] == "en" + ), f"Expected language_code='en', got {form_data['language_code']}" + # Check that temperature is passed through - assert 'temperature' in form_data, "temperature should be in form data" - assert form_data['temperature'] == '0.5', f"Expected temperature='0.5', got {form_data['temperature']}" - + assert "temperature" in form_data, "temperature should be in form data" + assert ( + form_data["temperature"] == "0.5" + ), f"Expected temperature='0.5', got {form_data['temperature']}" + # Check that custom parameters are passed through - assert 'custom_param' in form_data, "custom_param should be in form data" - assert form_data['custom_param'] == 'test_value', f"Expected custom_param='test_value', got {form_data['custom_param']}" - + assert ( + "custom_param" in form_data + ), "custom_param should be in form data" + assert ( + form_data["custom_param"] == "test_value" + ), f"Expected custom_param='test_value', got {form_data['custom_param']}" + # Check that files are included - files = captured_request_data['files'] + files = captured_request_data["files"] assert files is not None, "Files should not be None" - assert 'file' in files, "file should be in files" - + assert "file" in files, "file should be in files" + print("✅ All parameter passthrough tests passed!") - + except Exception as e: print(f"❌ Test failed: {e}") print(f"Captured request data: {captured_request_data}") - raise + raise class TestElevenLabsTextToSpeechTransformation: @@ -192,4 +212,4 @@ class TestElevenLabsTextToSpeechTransformation: ) assert voice_id in url - assert "output_format=pcm_44100" in url \ No newline at end of file + assert "output_format=pcm_44100" in url