mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-26 01:12:21 +00:00
* ci: fix the litellm-tests unit job with sysmon coverage, an env allowlist and coverage upload on failure * test: replace key-dependent proxy, enterprise and mcp unit tests with synthetic values and integration and e2e coverage * test: drop key reads at the legacy proxy, enterprise and mcp paths and wire the gemini pass-through split * ci: move caching, proxy-extras, gateway and enterprise tests into tests/unit and run them from litellm-tests under their legacy flags * ci: move caching, proxy-extras, gateway and enterprise tests into tests/unit and run them from litellm-tests under their legacy flags * ci: move tests/proxy_unit_tests to tests/unit/proxy and run the proxy-db shards from litellm-tests * ci: fail the unit shard when circleci tests split errors * test: drop restating comments from the gemini pass-through split * build: point the local proxy unit targets at the nested tests/unit/proxy tree * ci: exit the unit shard cleanly when circleci tests split assigns it no files --------- Co-authored-by: yuneng <yuneng@berri.ai>
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import asyncio
|
|
from unittest.mock import Mock, patch, AsyncMock
|
|
import pytest
|
|
from fastapi import Request
|
|
from litellm.proxy.utils import _get_redoc_url, _get_docs_url
|
|
from datetime import datetime
|
|
|
|
import litellm
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_disable_spend_logs():
|
|
"""
|
|
Test that the spend logs are not written to the database when disable_spend_logs is True
|
|
"""
|
|
# Mock the necessary components
|
|
|
|
mock_prisma_client = Mock()
|
|
mock_prisma_client.spend_log_transactions = []
|
|
# Add lock for spend_log_transactions (matches real PrismaClient)
|
|
mock_prisma_client._spend_log_transactions_lock = asyncio.Lock()
|
|
|
|
with (
|
|
patch("litellm.proxy.proxy_server.disable_spend_logs", True),
|
|
patch("litellm.proxy.proxy_server.prisma_client", mock_prisma_client),
|
|
):
|
|
from litellm.proxy.db.db_spend_update_writer import DBSpendUpdateWriter
|
|
|
|
db_spend_update_writer = DBSpendUpdateWriter()
|
|
|
|
# Call update_database with disable_spend_logs=True
|
|
await db_spend_update_writer.update_database(
|
|
token="fake-token",
|
|
response_cost=0.1,
|
|
user_id="user123",
|
|
completion_response=None,
|
|
start_time=datetime.now(),
|
|
end_time=datetime.now(),
|
|
end_user_id="end_user_id",
|
|
team_id="team_id",
|
|
org_id="org_id",
|
|
kwargs={},
|
|
)
|
|
# Verify no spend logs were added
|
|
assert len(mock_prisma_client.spend_log_transactions) == 0
|