diff --git a/litellm/tests/test_key_generate_prisma.py b/litellm/tests/test_key_generate_prisma.py index 734a0b11487..de26168591c 100644 --- a/litellm/tests/test_key_generate_prisma.py +++ b/litellm/tests/test_key_generate_prisma.py @@ -44,6 +44,7 @@ from litellm.proxy.proxy_server import ( info_key_fn, update_key_fn, generate_key_fn, + generate_key_helper_fn, spend_user_fn, spend_key_fn, view_spend_logs, @@ -1378,3 +1379,35 @@ async def test_user_api_key_auth_without_master_key(prisma_client): except Exception as e: print("Got Exception", e) pytest.fail(f"Got exception {e}") + + +@pytest.mark.asyncio +async def test_key_with_no_permissions(prisma_client): + """ + - create key + - get key info + - assert key_name is null + """ + setattr(litellm.proxy.proxy_server, "prisma_client", prisma_client) + setattr(litellm.proxy.proxy_server, "master_key", "sk-1234") + setattr(litellm.proxy.proxy_server, "general_settings", {"allow_user_auth": False}) + await litellm.proxy.proxy_server.prisma_client.connect() + try: + response = await generate_key_helper_fn( + **{"duration": "1hr", "key_max_budget": 0, "models": [], "aliases": {}, "config": {}, "spend": 0, "user_id": "ishaan", "team_id": "litellm-dashboard"} # type: ignore + ) + + print(response) + key = response["token"] + + # make a /chat/completions call -> it should fail + request = Request(scope={"type": "http"}) + request._url = URL(url="/chat/completions") + + # use generated key to auth in + result = await user_api_key_auth(request=request, api_key="Bearer " + key) + print("result from user auth with new key", result) + pytest.fail(f"This should have failed!. IT's an invalid key") + except Exception as e: + print("Got Exception", e) + print(e.message)