Skip to content

Commit 5b2235c

Browse files
committed
fix tests
1 parent 7806a5c commit 5b2235c

File tree

2 files changed

+64
-9
lines changed

2 files changed

+64
-9
lines changed

tests/test_auth.py

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,60 @@ class TestAuthClient(unittest.TestCase):
1313
def setUp(self) -> None:
1414
"""Set up test fixtures."""
1515
self.base_url = "https://api.test.com"
16-
self.auth_client = AuthClient(self.base_url)
16+
self.keycloak_url = "https://keycloak.test.com"
17+
self.keycloak_realm = "test-realm"
18+
self.keycloak_client_id = "test-client"
19+
self.auth_client = AuthClient(
20+
self.base_url,
21+
keycloak_url=self.keycloak_url,
22+
keycloak_realm=self.keycloak_realm,
23+
keycloak_client_id=self.keycloak_client_id,
24+
)
1725

1826
def test_init(self) -> None:
1927
"""Test AuthClient initialization."""
2028
self.assertEqual(self.auth_client.base_url, self.base_url)
29+
self.assertEqual(self.auth_client.keycloak_url, self.keycloak_url)
30+
self.assertEqual(self.auth_client.keycloak_realm, self.keycloak_realm)
31+
self.assertEqual(self.auth_client.keycloak_client_id, self.keycloak_client_id)
2132
self.assertIsNone(self.auth_client.access_token)
2233
self.assertIsNone(self.auth_client.refresh_token)
2334
self.assertIsNone(self.auth_client.user_info)
2435

2536
@patch("dataspace_sdk.auth.requests.post")
26-
def test_login_success(self, mock_post: MagicMock) -> None:
27-
"""Test successful login."""
37+
def test_login_with_username_password(self, mock_post: MagicMock) -> None:
38+
"""Test successful login with username/password."""
39+
# Mock Keycloak token response
40+
keycloak_response = MagicMock()
41+
keycloak_response.status_code = 200
42+
keycloak_response.json.return_value = {
43+
"access_token": "keycloak_access_token",
44+
"refresh_token": "keycloak_refresh_token",
45+
"expires_in": 300,
46+
}
47+
48+
# Mock DataSpace backend login response
49+
backend_response = MagicMock()
50+
backend_response.status_code = 200
51+
backend_response.json.return_value = {
52+
"access": "test_access_token",
53+
"refresh": "test_refresh_token",
54+
"user": {"id": "123", "username": "testuser"},
55+
}
56+
57+
mock_post.side_effect = [keycloak_response, backend_response]
58+
59+
result = self.auth_client.login("testuser", "password")
60+
61+
self.assertEqual(self.auth_client.access_token, "test_access_token")
62+
self.assertEqual(self.auth_client.refresh_token, "test_refresh_token")
63+
self.assertIsNotNone(self.auth_client.user_info)
64+
self.assertEqual(result["user"]["username"], "testuser")
65+
self.assertEqual(mock_post.call_count, 2)
66+
67+
@patch("dataspace_sdk.auth.requests.post")
68+
def test_login_with_token(self, mock_post: MagicMock) -> None:
69+
"""Test successful login with Keycloak token."""
2870
mock_response = MagicMock()
2971
mock_response.status_code = 200
3072
mock_response.json.return_value = {
@@ -34,7 +76,7 @@ def test_login_success(self, mock_post: MagicMock) -> None:
3476
}
3577
mock_post.return_value = mock_response
3678

37-
result = self.auth_client.login_with_keycloak("test_keycloak_token")
79+
result = self.auth_client._login_with_keycloak_token("test_keycloak_token")
3880

3981
self.assertEqual(self.auth_client.access_token, "test_access_token")
4082
self.assertEqual(self.auth_client.refresh_token, "test_refresh_token")
@@ -46,11 +88,11 @@ def test_login_failure(self, mock_post: MagicMock) -> None:
4688
"""Test failed login."""
4789
mock_response = MagicMock()
4890
mock_response.status_code = 401
49-
mock_response.json.return_value = {"error": "Invalid token"}
91+
mock_response.json.return_value = {"error": "invalid_grant"}
5092
mock_post.return_value = mock_response
5193

5294
with self.assertRaises(DataSpaceAuthError):
53-
self.auth_client.login_with_keycloak("invalid_token")
95+
self.auth_client.login("invalid_user", "invalid_password")
5496

5597
@patch("dataspace_sdk.auth.requests.post")
5698
def test_refresh_token_success(self, mock_post: MagicMock) -> None:

tests/test_client.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,28 @@ def test_init(self) -> None:
2222
self.assertIsNotNone(self.client.aimodels)
2323
self.assertIsNotNone(self.client.usecases)
2424

25-
@patch("dataspace_sdk.client.AuthClient.login_with_keycloak")
25+
@patch("dataspace_sdk.client.AuthClient.login")
2626
def test_login(self, mock_login: MagicMock) -> None:
27-
"""Test login method."""
27+
"""Test login method with username/password."""
2828
mock_login.return_value = {
2929
"access": "token",
3030
"user": {"id": "123", "username": "testuser"},
3131
}
3232

33-
result = self.client.login("test_token")
33+
result = self.client.login("testuser", "password")
34+
35+
self.assertEqual(result["user"]["username"], "testuser")
36+
mock_login.assert_called_once_with("testuser", "password")
37+
38+
@patch("dataspace_sdk.client.AuthClient._login_with_keycloak_token")
39+
def test_login_with_token(self, mock_login: MagicMock) -> None:
40+
"""Test login method with Keycloak token."""
41+
mock_login.return_value = {
42+
"access": "token",
43+
"user": {"id": "123", "username": "testuser"},
44+
}
45+
46+
result = self.client.login_with_token("test_token")
3447

3548
self.assertEqual(result["user"]["username"], "testuser")
3649
mock_login.assert_called_once_with("test_token")

0 commit comments

Comments
 (0)