From 282ce1a859dd7d4157140eb077faf0a4bee41b69 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Wed, 2 Jul 2025 22:23:03 -0700 Subject: [PATCH] test - fix delete keys --- .../proxy/client/cli/test_keys_commands.py | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/tests/test_litellm/proxy/client/cli/test_keys_commands.py b/tests/test_litellm/proxy/client/cli/test_keys_commands.py index 1347a776b1b..d3e2d4ce7b6 100644 --- a/tests/test_litellm/proxy/client/cli/test_keys_commands.py +++ b/tests/test_litellm/proxy/client/cli/test_keys_commands.py @@ -116,9 +116,36 @@ def test_keys_generate_error_handling(mock_keys_client, cli_runner): def test_keys_delete_error_handling(mock_keys_client, cli_runner): - mock_keys_client.return_value.delete.side_effect = Exception("API Error") + import requests + + # Mock a connection error that would normally happen in CI + mock_keys_client.return_value.delete.side_effect = requests.exceptions.ConnectionError( + "Connection error" + ) result = cli_runner.invoke(cli, ["keys", "delete", "--keys", "abc123"]) assert result.exit_code != 0 # Check that the exception is properly propagated assert result.exception is not None - assert "API Error" in str(result.exception) + # The ConnectionError should propagate since it's not caught by HTTPError handler + assert "Connection error" in str(result.exception) + + +def test_keys_delete_http_error_handling(mock_keys_client, cli_runner): + from unittest.mock import Mock + + import requests + + # Create a mock response object for HTTPError + mock_response = Mock() + mock_response.status_code = 400 + mock_response.json.return_value = {"error": "Bad request"} + + # Mock an HTTPError which should be caught by the delete command + http_error = requests.exceptions.HTTPError("HTTP Error") + http_error.response = mock_response + mock_keys_client.return_value.delete.side_effect = http_error + + result = cli_runner.invoke(cli, ["keys", "delete", "--keys", "abc123"]) + assert result.exit_code != 0 + # HTTPError should be caught and converted to click.Abort + assert isinstance(result.exception, SystemExit) # click.Abort raises SystemExit