|
1 | 1 | # encoding=utf-8
|
| 2 | +from pathlib import Path |
2 | 3 | import unittest
|
3 | 4 | import os
|
4 | 5 | import requests_mock
|
5 | 6 | import tableauserverclient as TSC
|
6 | 7 | from tableauserverclient.datetime_helpers import format_datetime
|
7 | 8 |
|
8 |
| -TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), "assets") |
| 9 | +TEST_ASSET_DIR = Path(__file__).absolute().parent / "assets" |
| 10 | + |
| 11 | +# TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), "assets") |
9 | 12 |
|
10 | 13 | GET_XML = os.path.join(TEST_ASSET_DIR, "group_get.xml")
|
11 | 14 | POPULATE_USERS = os.path.join(TEST_ASSET_DIR, "group_populate_users.xml")
|
|
16 | 19 | CREATE_GROUP_AD = os.path.join(TEST_ASSET_DIR, "group_create_ad.xml")
|
17 | 20 | CREATE_GROUP_ASYNC = os.path.join(TEST_ASSET_DIR, "group_create_async.xml")
|
18 | 21 | UPDATE_XML = os.path.join(TEST_ASSET_DIR, "group_update.xml")
|
| 22 | +UPDATE_ASYNC_XML = TEST_ASSET_DIR / "group_update_async.xml" |
19 | 23 |
|
20 | 24 |
|
21 | 25 | class GroupTests(unittest.TestCase):
|
@@ -245,3 +249,16 @@ def test_update_local_async(self) -> None:
|
245 | 249 | # mimic group returned from server where domain name is set to 'local'
|
246 | 250 | group.domain_name = "local"
|
247 | 251 | self.assertRaises(ValueError, self.server.groups.update, group, as_job=True)
|
| 252 | + |
| 253 | + def test_update_ad_async(self) -> None: |
| 254 | + group = TSC.GroupItem("myGroup", "example.com") |
| 255 | + group._id = "ef8b19c0-43b6-11e6-af50-63f5805dbe3c" |
| 256 | + group.minimum_site_role = TSC.UserItem.Roles.Viewer |
| 257 | + |
| 258 | + with requests_mock.mock() as m: |
| 259 | + m.put(f"{self.baseurl}/{group.id}?asJob=True", text=UPDATE_ASYNC_XML.read_bytes().decode("utf8")) |
| 260 | + job = self.server.groups.update(group, as_job=True) |
| 261 | + |
| 262 | + self.assertEqual(job.id, "c2566efc-0767-4f15-89cb-56acb4349c1b") |
| 263 | + self.assertEqual(job.mode, "Asynchronous") |
| 264 | + self.assertEqual(job.type, "GroupSync") |
0 commit comments