|
1 | 1 | from typing import Union |
| 2 | + |
2 | 3 | import pytest |
| 4 | +from workos.directory_sync import AsyncDirectorySync, DirectorySync |
3 | 5 |
|
4 | 6 | from tests.types.test_auto_pagination_function import TestAutoPaginationFunction |
5 | | -from tests.utils.list_resource import list_data_to_dicts, list_response_of |
6 | | -from tests.utils.fixtures.mock_directory import MockDirectory |
7 | | -from tests.utils.fixtures.mock_directory_user import MockDirectoryUser |
| 7 | +from tests.utils.fixtures.mock_directory import ( |
| 8 | + MockDirectory, |
| 9 | + MockDirectoryMetadata, |
| 10 | + MockDirectoryUsersMetadata, |
| 11 | +) |
8 | 12 | from tests.utils.fixtures.mock_directory_group import MockDirectoryGroup |
| 13 | +from tests.utils.fixtures.mock_directory_user import MockDirectoryUser |
| 14 | +from tests.utils.list_resource import list_data_to_dicts, list_response_of |
9 | 15 | from tests.utils.syncify import syncify |
10 | | -from workos.directory_sync import AsyncDirectorySync, DirectorySync |
11 | 16 |
|
12 | 17 |
|
13 | 18 | def api_directory_to_sdk(directory): |
@@ -96,6 +101,16 @@ def mock_directories(self): |
96 | 101 | directory_list = [MockDirectory(id=str(i)).dict() for i in range(10)] |
97 | 102 | return list_response_of(data=directory_list) |
98 | 103 |
|
| 104 | + @pytest.fixture |
| 105 | + def mock_directories_with_metadata(self): |
| 106 | + metadata = MockDirectoryMetadata( |
| 107 | + users=MockDirectoryUsersMetadata(active=1, inactive=0), groups=1 |
| 108 | + ) |
| 109 | + directory_list = [ |
| 110 | + MockDirectory(id=str(i), metadata=metadata).dict() for i in range(10) |
| 111 | + ] |
| 112 | + return list_response_of(data=directory_list) |
| 113 | + |
99 | 114 | @pytest.fixture |
100 | 115 | def mock_directory_users_multiple_data_pages(self): |
101 | 116 | return [ |
@@ -241,6 +256,27 @@ def test_list_directories( |
241 | 256 | "order": "desc", |
242 | 257 | } |
243 | 258 |
|
| 259 | + def test_list_directories_with_metadata( |
| 260 | + self, mock_directories_with_metadata, capture_and_mock_http_client_request |
| 261 | + ): |
| 262 | + request_kwargs = capture_and_mock_http_client_request( |
| 263 | + http_client=self.http_client, |
| 264 | + status_code=200, |
| 265 | + response_dict=mock_directories_with_metadata, |
| 266 | + ) |
| 267 | + |
| 268 | + directories = syncify(self.directory_sync.list_directories()) |
| 269 | + |
| 270 | + assert list_data_to_dicts(directories.data) == api_directories_to_sdk( |
| 271 | + mock_directories_with_metadata["data"] |
| 272 | + ) |
| 273 | + assert request_kwargs["url"].endswith("/directories") |
| 274 | + assert request_kwargs["method"] == "get" |
| 275 | + assert request_kwargs["params"] == { |
| 276 | + "limit": 10, |
| 277 | + "order": "desc", |
| 278 | + } |
| 279 | + |
244 | 280 | def test_get_directory(self, mock_directory, capture_and_mock_http_client_request): |
245 | 281 | request_kwargs = capture_and_mock_http_client_request( |
246 | 282 | http_client=self.http_client, |
|
0 commit comments