forked from phoenix/litellm-mirror
fix - test end user rate limits with master key
This commit is contained in:
parent
a848a676af
commit
4175d00a24
1 changed files with 51 additions and 1 deletions
|
@ -199,7 +199,7 @@ async def test_end_user_specific_region():
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_end_tpm_limits():
|
async def test_enduser_tpm_limits_non_master_key():
|
||||||
"""
|
"""
|
||||||
1. budget_id = Create Budget with tpm_limit = 10
|
1. budget_id = Create Budget with tpm_limit = 10
|
||||||
2. create end_user with budget_id
|
2. create end_user with budget_id
|
||||||
|
@ -235,6 +235,56 @@ async def test_end_tpm_limits():
|
||||||
|
|
||||||
print("\nchat completion result 1=", result)
|
print("\nchat completion result 1=", result)
|
||||||
|
|
||||||
|
# chat completion 2
|
||||||
|
try:
|
||||||
|
result = await client.chat.completions.create(
|
||||||
|
model="fake-openai-endpoint",
|
||||||
|
messages=[{"role": "user", "content": "Hey!"}],
|
||||||
|
user=end_user_id,
|
||||||
|
)
|
||||||
|
pytest.fail(
|
||||||
|
"User crossed their limit - this should have failed. instead got result = {}".format(
|
||||||
|
result
|
||||||
|
)
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
print("got exception 2 =", e)
|
||||||
|
assert "Crossed TPM, RPM Limit" in str(
|
||||||
|
e
|
||||||
|
), f"Expected 'Crossed TPM, RPM Limit' but got {str(e)}"
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_enduser_tpm_limits_with_master_key():
|
||||||
|
"""
|
||||||
|
1. budget_id = Create Budget with tpm_limit = 10
|
||||||
|
2. create end_user with budget_id
|
||||||
|
3. Make /chat/completions calls
|
||||||
|
4. Sleep 1 second
|
||||||
|
4. Make /chat/completions call -> expect this to fail because rate limit hit
|
||||||
|
"""
|
||||||
|
async with aiohttp.ClientSession() as session:
|
||||||
|
# create a budget with budget_id = "free-tier"
|
||||||
|
budget_id = f"free-tier-{uuid.uuid4()}"
|
||||||
|
await new_budget(session, 0, budget_id=budget_id)
|
||||||
|
|
||||||
|
end_user_id = str(uuid.uuid4())
|
||||||
|
|
||||||
|
await new_end_user(
|
||||||
|
session=session, i=0, user_id=end_user_id, budget_id=budget_id
|
||||||
|
)
|
||||||
|
|
||||||
|
# chat completion 1
|
||||||
|
client = AsyncOpenAI(api_key="sk-1234", base_url="http://0.0.0.0:4000")
|
||||||
|
|
||||||
|
result = await client.chat.completions.create(
|
||||||
|
model="fake-openai-endpoint",
|
||||||
|
messages=[{"role": "user", "content": "Hey!"}],
|
||||||
|
user=end_user_id,
|
||||||
|
)
|
||||||
|
|
||||||
|
print("\nchat completion result 1=", result)
|
||||||
|
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
# chat completion 2
|
# chat completion 2
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue