mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-12 03:48:56 +00:00
* refactor(proxy): expose public names for private proxy helpers Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): keep original class names behind public aliases Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): preserve internal callback filtering Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): keep _PROXY_ class names for managed files hooks Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): keep old private names in package exports Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): preserve recursive auth helper name Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): align MCP limiter tests with server enforcement Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): match main's MCP limiter tests Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): keep old private names bound in importing modules Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): preserve compatibility imports through strict lint Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): use exact pyright suppression in password helper test Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * style(proxy): add reasons to compatibility import noqa comments Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * test(proxy): update IN-list baseline for renamed helpers Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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
|