mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-10 03:28:53 +00:00
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:
parent
11ba7f06a6
commit
4e5152bbff
1 changed files with 55 additions and 35 deletions
|
|
@ -233,11 +233,18 @@ def test_target_storage_invokes_storage_backend(
|
||||||
"""
|
"""
|
||||||
Ensure target_storage is parsed and invokes the storage backend service.
|
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.master_key", None)
|
||||||
monkeypatch.setattr("litellm.proxy.proxy_server.prisma_client", None)
|
monkeypatch.setattr("litellm.proxy.proxy_server.prisma_client", None)
|
||||||
monkeypatch.setattr("litellm.proxy.proxy_server.llm_router", llm_router)
|
monkeypatch.setattr("litellm.proxy.proxy_server.llm_router", llm_router)
|
||||||
setup_proxy_logging_object(monkeypatch, 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(
|
async_mock = mocker.AsyncMock(
|
||||||
return_value=OpenAIFileObject(
|
return_value=OpenAIFileObject(
|
||||||
id="file-test",
|
id="file-test",
|
||||||
|
|
@ -254,25 +261,28 @@ def test_target_storage_invokes_storage_backend(
|
||||||
new=async_mock,
|
new=async_mock,
|
||||||
)
|
)
|
||||||
|
|
||||||
test_file_content = b"abc"
|
try:
|
||||||
test_file = ("abc.txt", test_file_content, "text/plain")
|
test_file_content = b"abc"
|
||||||
|
test_file = ("abc.txt", test_file_content, "text/plain")
|
||||||
|
|
||||||
response = client.post(
|
response = client.post(
|
||||||
"/v1/files",
|
"/v1/files",
|
||||||
files={"file": test_file},
|
files={"file": test_file},
|
||||||
data={
|
data={
|
||||||
"purpose": "user_data",
|
"purpose": "user_data",
|
||||||
"target_storage": "azure_storage",
|
"target_storage": "azure_storage",
|
||||||
},
|
},
|
||||||
headers={"Authorization": "Bearer test-key"},
|
headers={"Authorization": "Bearer test-key"},
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200, response.text
|
||||||
async_mock.assert_awaited_once()
|
async_mock.assert_awaited_once()
|
||||||
called_kwargs = async_mock.call_args.kwargs
|
called_kwargs = async_mock.call_args.kwargs
|
||||||
assert called_kwargs["target_storage"] == "azure_storage"
|
assert called_kwargs["target_storage"] == "azure_storage"
|
||||||
assert called_kwargs["target_model_names"] == []
|
assert called_kwargs["target_model_names"] == []
|
||||||
assert called_kwargs["purpose"] == "user_data"
|
assert called_kwargs["purpose"] == "user_data"
|
||||||
|
finally:
|
||||||
|
app.dependency_overrides.pop(ps.user_api_key_auth, None)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.flaky(retries=3, delay=2)
|
@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.
|
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.master_key", None)
|
||||||
monkeypatch.setattr("litellm.proxy.proxy_server.prisma_client", None)
|
monkeypatch.setattr("litellm.proxy.proxy_server.prisma_client", None)
|
||||||
monkeypatch.setattr("litellm.proxy.proxy_server.llm_router", llm_router)
|
monkeypatch.setattr("litellm.proxy.proxy_server.llm_router", llm_router)
|
||||||
setup_proxy_logging_object(monkeypatch, 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(
|
async_mock = mocker.AsyncMock(
|
||||||
return_value=OpenAIFileObject(
|
return_value=OpenAIFileObject(
|
||||||
id="file-test",
|
id="file-test",
|
||||||
|
|
@ -303,26 +320,29 @@ def test_target_storage_with_target_models(
|
||||||
new=async_mock,
|
new=async_mock,
|
||||||
)
|
)
|
||||||
|
|
||||||
test_file_content = b"abc"
|
try:
|
||||||
test_file = ("abc.txt", test_file_content, "text/plain")
|
test_file_content = b"abc"
|
||||||
|
test_file = ("abc.txt", test_file_content, "text/plain")
|
||||||
|
|
||||||
response = client.post(
|
response = client.post(
|
||||||
"/v1/files",
|
"/v1/files",
|
||||||
files={"file": test_file},
|
files={"file": test_file},
|
||||||
data={
|
data={
|
||||||
"purpose": "user_data",
|
"purpose": "user_data",
|
||||||
"target_storage": "azure_storage",
|
"target_storage": "azure_storage",
|
||||||
"target_model_names": "gemini-2.0-flash",
|
"target_model_names": "gemini-2.0-flash",
|
||||||
},
|
},
|
||||||
headers={"Authorization": "Bearer test-key"},
|
headers={"Authorization": "Bearer test-key"},
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200, response.text
|
||||||
async_mock.assert_awaited_once()
|
async_mock.assert_awaited_once()
|
||||||
called_kwargs = async_mock.call_args.kwargs
|
called_kwargs = async_mock.call_args.kwargs
|
||||||
assert called_kwargs["target_storage"] == "azure_storage"
|
assert called_kwargs["target_storage"] == "azure_storage"
|
||||||
assert called_kwargs["target_model_names"] == ["gemini-2.0-flash"]
|
assert called_kwargs["target_model_names"] == ["gemini-2.0-flash"]
|
||||||
assert called_kwargs["purpose"] == "user_data"
|
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")
|
@pytest.mark.skip(reason="mock respx fails on ci/cd - unclear why")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue