Spaces:
Configuration error
Configuration error
from unittest.mock import AsyncMock, patch | |
import pytest | |
from litellm.proxy._types import LiteLLM_TeamTable, LiteLLM_UserTable, Member | |
from litellm.proxy.auth.handle_jwt import JWTAuthManager | |
async def test_map_user_to_teams_user_already_in_team(): | |
"""Test that no action is taken when user is already in team""" | |
# Setup test data | |
user = LiteLLM_UserTable(user_id="test_user_1") | |
team = LiteLLM_TeamTable( | |
team_id="test_team_1", | |
members_with_roles=[Member(user_id="test_user_1", role="user")], | |
) | |
# Mock team_member_add to ensure it's not called | |
with patch( | |
"litellm.proxy.management_endpoints.team_endpoints.team_member_add", | |
new_callable=AsyncMock, | |
) as mock_add: | |
await JWTAuthManager.map_user_to_teams(user_object=user, team_object=team) | |
mock_add.assert_not_called() | |
async def test_map_user_to_teams_add_new_user(): | |
"""Test that new user is added to team""" | |
# Setup test data | |
user = LiteLLM_UserTable(user_id="test_user_1") | |
team = LiteLLM_TeamTable(team_id="test_team_1", members_with_roles=[]) | |
# Mock team_member_add | |
with patch( | |
"litellm.proxy.management_endpoints.team_endpoints.team_member_add", | |
new_callable=AsyncMock, | |
) as mock_add: | |
await JWTAuthManager.map_user_to_teams(user_object=user, team_object=team) | |
mock_add.assert_called_once() | |
# Verify the correct data was passed to team_member_add | |
call_args = mock_add.call_args[1]["data"] | |
assert call_args.member.user_id == "test_user_1" | |
assert call_args.member.role == "user" | |
assert call_args.team_id == "test_team_1" | |
async def test_map_user_to_teams_null_inputs(): | |
"""Test that method handles null inputs gracefully""" | |
# Test with null user | |
await JWTAuthManager.map_user_to_teams( | |
user_object=None, team_object=LiteLLM_TeamTable(team_id="test_team_1") | |
) | |
# Test with null team | |
await JWTAuthManager.map_user_to_teams( | |
user_object=LiteLLM_UserTable(user_id="test_user_1"), team_object=None | |
) | |
# Test with both null | |
await JWTAuthManager.map_user_to_teams(user_object=None, team_object=None) | |