File size: 2,474 Bytes
447ebeb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from unittest.mock import MagicMock, patch

import pytest

from litellm.proxy.client.users import (
    NotFoundError,
    UnauthorizedError,
    UsersManagementClient,
)


@pytest.fixture
def client():
    return UsersManagementClient(base_url="http://localhost:4000", api_key="sk-test")


@patch("requests.get")
def test_list_users_success(mock_get, client):
    mock_get.return_value.status_code = 200
    mock_get.return_value.json.return_value = {"users": [{"user_id": "u1"}]}
    users = client.list_users()
    assert users == [{"user_id": "u1"}]
    mock_get.assert_called_once()


@patch("requests.get")
def test_list_users_unauthorized(mock_get, client):
    mock_get.return_value.status_code = 401
    mock_get.return_value.text = "unauthorized"
    with pytest.raises(UnauthorizedError):
        client.list_users()


@patch("requests.get")
def test_get_user_success(mock_get, client):
    mock_get.return_value.status_code = 200
    mock_get.return_value.json.return_value = {"user_id": "u1"}
    user = client.get_user(user_id="u1")
    assert user["user_id"] == "u1"
    mock_get.assert_called_once()


@patch("requests.get")
def test_get_user_404(mock_get, client):
    mock_get.return_value.status_code = 404
    mock_get.return_value.text = "not found"
    with pytest.raises(NotFoundError):
        client.get_user(user_id="u1")


@patch("requests.post")
def test_create_user_success(mock_post, client):
    mock_post.return_value.status_code = 200
    mock_post.return_value.json.return_value = {"user_id": "u1"}
    user = client.create_user({"user_email": "[email protected]"})
    assert user["user_id"] == "u1"
    mock_post.assert_called_once()


@patch("requests.post")
def test_create_user_unauthorized(mock_post, client):
    mock_post.return_value.status_code = 401
    mock_post.return_value.text = "unauthorized"
    with pytest.raises(UnauthorizedError):
        client.create_user({"user_email": "[email protected]"})


@patch("requests.post")
def test_delete_user_success(mock_post, client):
    mock_post.return_value.status_code = 200
    mock_post.return_value.json.return_value = {"deleted": 1}
    result = client.delete_user(["u1"])
    assert result["deleted"] == 1
    mock_post.assert_called_once()


@patch("requests.post")
def test_delete_user_unauthorized(mock_post, client):
    mock_post.return_value.status_code = 401
    mock_post.return_value.text = "unauthorized"
    with pytest.raises(UnauthorizedError):
        client.delete_user(["u1"])