fix(test): add auth overrides to file endpoint tests that return 500

The test_target_storage tests were getting 500 because the FastAPI auth
dependency wasn't overridden. Added app.dependency_overrides for proper
auth bypass in test environment.

Co-authored-by: Ishaan Jaff <ishaan-jaff@users.noreply.github.com>
This commit is contained in:
Cursor Agent 2026-02-28 15:39:40 +00:00
parent 11ba7f06a6
commit 4e5152bbff

View file

@ -233,11 +233,18 @@ def test_target_storage_invokes_storage_backend(
"""
Ensure target_storage is parsed and invokes the storage backend service.
"""
from litellm.proxy._types import LitellmUserRoles
import litellm.proxy.proxy_server as ps
monkeypatch.setattr("litellm.proxy.proxy_server.master_key", None)
monkeypatch.setattr("litellm.proxy.proxy_server.prisma_client", None)
monkeypatch.setattr("litellm.proxy.proxy_server.llm_router", llm_router)
setup_proxy_logging_object(monkeypatch, llm_router)
app.dependency_overrides[ps.user_api_key_auth] = lambda: UserAPIKeyAuth(
user_role=LitellmUserRoles.PROXY_ADMIN, user_id="test-user"
)
async_mock = mocker.AsyncMock(
return_value=OpenAIFileObject(
id="file-test",
@ -254,25 +261,28 @@ def test_target_storage_invokes_storage_backend(
new=async_mock,
)
test_file_content = b"abc"
test_file = ("abc.txt", test_file_content, "text/plain")
try:
test_file_content = b"abc"
test_file = ("abc.txt", test_file_content, "text/plain")
response = client.post(
"/v1/files",
files={"file": test_file},
data={
"purpose": "user_data",
"target_storage": "azure_storage",
},
headers={"Authorization": "Bearer test-key"},
)
response = client.post(
"/v1/files",
files={"file": test_file},
data={
"purpose": "user_data",
"target_storage": "azure_storage",
},
headers={"Authorization": "Bearer test-key"},
)
assert response.status_code == 200
async_mock.assert_awaited_once()
called_kwargs = async_mock.call_args.kwargs
assert called_kwargs["target_storage"] == "azure_storage"
assert called_kwargs["target_model_names"] == []
assert called_kwargs["purpose"] == "user_data"
assert response.status_code == 200, response.text
async_mock.assert_awaited_once()
called_kwargs = async_mock.call_args.kwargs
assert called_kwargs["target_storage"] == "azure_storage"
assert called_kwargs["target_model_names"] == []
assert called_kwargs["purpose"] == "user_data"
finally:
app.dependency_overrides.pop(ps.user_api_key_auth, None)
@pytest.mark.flaky(retries=3, delay=2)
@ -282,11 +292,18 @@ def test_target_storage_with_target_models(
"""
Ensure target_storage and target_model_names are parsed and passed through.
"""
from litellm.proxy._types import LitellmUserRoles
import litellm.proxy.proxy_server as ps
monkeypatch.setattr("litellm.proxy.proxy_server.master_key", None)
monkeypatch.setattr("litellm.proxy.proxy_server.prisma_client", None)
monkeypatch.setattr("litellm.proxy.proxy_server.llm_router", llm_router)
setup_proxy_logging_object(monkeypatch, llm_router)
app.dependency_overrides[ps.user_api_key_auth] = lambda: UserAPIKeyAuth(
user_role=LitellmUserRoles.PROXY_ADMIN, user_id="test-user"
)
async_mock = mocker.AsyncMock(
return_value=OpenAIFileObject(
id="file-test",
@ -303,26 +320,29 @@ def test_target_storage_with_target_models(
new=async_mock,
)
test_file_content = b"abc"
test_file = ("abc.txt", test_file_content, "text/plain")
try:
test_file_content = b"abc"
test_file = ("abc.txt", test_file_content, "text/plain")
response = client.post(
"/v1/files",
files={"file": test_file},
data={
"purpose": "user_data",
"target_storage": "azure_storage",
"target_model_names": "gemini-2.0-flash",
},
headers={"Authorization": "Bearer test-key"},
)
response = client.post(
"/v1/files",
files={"file": test_file},
data={
"purpose": "user_data",
"target_storage": "azure_storage",
"target_model_names": "gemini-2.0-flash",
},
headers={"Authorization": "Bearer test-key"},
)
assert response.status_code == 200
async_mock.assert_awaited_once()
called_kwargs = async_mock.call_args.kwargs
assert called_kwargs["target_storage"] == "azure_storage"
assert called_kwargs["target_model_names"] == ["gemini-2.0-flash"]
assert called_kwargs["purpose"] == "user_data"
assert response.status_code == 200, response.text
async_mock.assert_awaited_once()
called_kwargs = async_mock.call_args.kwargs
assert called_kwargs["target_storage"] == "azure_storage"
assert called_kwargs["target_model_names"] == ["gemini-2.0-flash"]
assert called_kwargs["purpose"] == "user_data"
finally:
app.dependency_overrides.pop(ps.user_api_key_auth, None)
@pytest.mark.skip(reason="mock respx fails on ci/cd - unclear why")