Skip to content

Commit 513427f

Browse files
committed
chore: pytestify group_sets
1 parent 4417beb commit 513427f

File tree

1 file changed

+132
-125
lines changed

1 file changed

+132
-125
lines changed

test/test_groupsets.py

Lines changed: 132 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from pathlib import Path
2-
import unittest
32

4-
from defusedxml.ElementTree import fromstring
3+
import pytest
54
import requests_mock
65

76
import tableauserverclient as TSC
@@ -14,126 +13,134 @@
1413
GROUPSET_UPDATE = TEST_ASSET_DIR / "groupsets_get_by_id.xml"
1514

1615

17-
class TestGroupSets(unittest.TestCase):
18-
def setUp(self) -> None:
19-
self.server = TSC.Server("http://test", False)
20-
self.server.version = "3.22"
21-
22-
# Fake signin
23-
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
24-
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
25-
26-
self.baseurl = self.server.group_sets.baseurl
27-
28-
def test_get(self) -> None:
29-
with requests_mock.mock() as m:
30-
m.get(self.baseurl, text=GROUPSETS_GET.read_text())
31-
groupsets, pagination_item = self.server.group_sets.get()
32-
33-
assert len(groupsets) == 3
34-
assert pagination_item.total_available == 3
35-
assert groupsets[0].id == "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
36-
assert groupsets[0].name == "All Users"
37-
assert groupsets[0].group_count == 1
38-
assert groupsets[0].groups[0].name == "group-one"
39-
assert groupsets[0].groups[0].id == "gs-1"
40-
41-
assert groupsets[1].id == "9a8a7b6b-5c4c-3d2d-1e0e-9a8a7b6b5b4b"
42-
assert groupsets[1].name == "active-directory-group-import"
43-
assert groupsets[1].group_count == 1
44-
assert groupsets[1].groups[0].name == "group-two"
45-
assert groupsets[1].groups[0].id == "gs21"
46-
47-
assert groupsets[2].id == "7b6b59a8-ac3c-4d1d-2e9e-0b5b4ba8a7b6"
48-
assert groupsets[2].name == "local-group-license-on-login"
49-
assert groupsets[2].group_count == 1
50-
assert groupsets[2].groups[0].name == "group-three"
51-
assert groupsets[2].groups[0].id == "gs-3"
52-
53-
def test_get_by_id(self) -> None:
54-
with requests_mock.mock() as m:
55-
m.get(f"{self.baseurl}/1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d", text=GROUPSET_GET_BY_ID.read_text())
56-
groupset = self.server.group_sets.get_by_id("1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d")
57-
58-
assert groupset.id == "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
59-
assert groupset.name == "All Users"
60-
assert groupset.group_count == 3
61-
assert len(groupset.groups) == 3
62-
63-
assert groupset.groups[0].name == "group-one"
64-
assert groupset.groups[0].id == "gs-1"
65-
assert groupset.groups[1].name == "group-two"
66-
assert groupset.groups[1].id == "gs21"
67-
assert groupset.groups[2].name == "group-three"
68-
assert groupset.groups[2].id == "gs-3"
69-
70-
def test_update(self) -> None:
71-
id_ = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
72-
groupset = TSC.GroupSetItem("All Users")
73-
groupset.id = id_
74-
with requests_mock.mock() as m:
75-
m.put(f"{self.baseurl}/{id_}", text=GROUPSET_UPDATE.read_text())
76-
groupset = self.server.group_sets.update(groupset)
77-
78-
assert groupset.id == id_
79-
assert groupset.name == "All Users"
80-
assert groupset.group_count == 3
81-
assert len(groupset.groups) == 3
82-
83-
assert groupset.groups[0].name == "group-one"
84-
assert groupset.groups[0].id == "gs-1"
85-
assert groupset.groups[1].name == "group-two"
86-
assert groupset.groups[1].id == "gs21"
87-
assert groupset.groups[2].name == "group-three"
88-
assert groupset.groups[2].id == "gs-3"
89-
90-
def test_create(self) -> None:
91-
groupset = TSC.GroupSetItem("All Users")
92-
with requests_mock.mock() as m:
93-
m.post(self.baseurl, text=GROUPSET_CREATE.read_text())
94-
groupset = self.server.group_sets.create(groupset)
95-
96-
assert groupset.id == "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
97-
assert groupset.name == "All Users"
98-
assert groupset.group_count == 0
99-
assert len(groupset.groups) == 0
100-
101-
def test_add_group(self) -> None:
102-
groupset = TSC.GroupSetItem("All")
103-
groupset.id = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
104-
group = TSC.GroupItem("Example")
105-
group._id = "ef8b19c0-43b6-11e6-af50-63f5805dbe3c"
106-
107-
with requests_mock.mock() as m:
108-
m.put(f"{self.baseurl}/{groupset.id}/groups/{group._id}")
109-
self.server.group_sets.add_group(groupset, group)
110-
111-
history = m.request_history
112-
113-
assert len(history) == 1
114-
assert history[0].method == "PUT"
115-
assert history[0].url == f"{self.baseurl}/{groupset.id}/groups/{group._id}"
116-
117-
def test_remove_group(self) -> None:
118-
groupset = TSC.GroupSetItem("All")
119-
groupset.id = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
120-
group = TSC.GroupItem("Example")
121-
group._id = "ef8b19c0-43b6-11e6-af50-63f5805dbe3c"
122-
123-
with requests_mock.mock() as m:
124-
m.delete(f"{self.baseurl}/{groupset.id}/groups/{group._id}")
125-
self.server.group_sets.remove_group(groupset, group)
126-
127-
history = m.request_history
128-
129-
assert len(history) == 1
130-
assert history[0].method == "DELETE"
131-
assert history[0].url == f"{self.baseurl}/{groupset.id}/groups/{group._id}"
132-
133-
def test_as_reference(self) -> None:
134-
groupset = TSC.GroupSetItem()
135-
groupset.id = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
136-
ref = groupset.as_reference(groupset.id)
137-
assert ref.id == groupset.id
138-
assert ref.tag_name == groupset.tag_name
139-
assert isinstance(ref, ResourceReference)
16+
@pytest.fixture(scope="function")
17+
def server():
18+
"""Fixture to create a TSC.Server instance for testing."""
19+
server = TSC.Server("http://test", False)
20+
21+
# Fake signin
22+
server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
23+
server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
24+
server.version = "3.22"
25+
26+
return server
27+
28+
29+
def test_get(server: TSC.Server) -> None:
30+
with requests_mock.mock() as m:
31+
m.get(server.group_sets.baseurl, text=GROUPSETS_GET.read_text())
32+
groupsets, pagination_item = server.group_sets.get()
33+
34+
assert len(groupsets) == 3
35+
assert pagination_item.total_available == 3
36+
assert groupsets[0].id == "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
37+
assert groupsets[0].name == "All Users"
38+
assert groupsets[0].group_count == 1
39+
assert groupsets[0].groups[0].name == "group-one"
40+
assert groupsets[0].groups[0].id == "gs-1"
41+
42+
assert groupsets[1].id == "9a8a7b6b-5c4c-3d2d-1e0e-9a8a7b6b5b4b"
43+
assert groupsets[1].name == "active-directory-group-import"
44+
assert groupsets[1].group_count == 1
45+
assert groupsets[1].groups[0].name == "group-two"
46+
assert groupsets[1].groups[0].id == "gs21"
47+
48+
assert groupsets[2].id == "7b6b59a8-ac3c-4d1d-2e9e-0b5b4ba8a7b6"
49+
assert groupsets[2].name == "local-group-license-on-login"
50+
assert groupsets[2].group_count == 1
51+
assert groupsets[2].groups[0].name == "group-three"
52+
assert groupsets[2].groups[0].id == "gs-3"
53+
54+
55+
def test_get_by_id(server: TSC.Server) -> None:
56+
with requests_mock.mock() as m:
57+
m.get(f"{server.group_sets.baseurl}/1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d", text=GROUPSET_GET_BY_ID.read_text())
58+
groupset = server.group_sets.get_by_id("1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d")
59+
60+
assert groupset.id == "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
61+
assert groupset.name == "All Users"
62+
assert groupset.group_count == 3
63+
assert len(groupset.groups) == 3
64+
65+
assert groupset.groups[0].name == "group-one"
66+
assert groupset.groups[0].id == "gs-1"
67+
assert groupset.groups[1].name == "group-two"
68+
assert groupset.groups[1].id == "gs21"
69+
assert groupset.groups[2].name == "group-three"
70+
assert groupset.groups[2].id == "gs-3"
71+
72+
73+
def test_update(server: TSC.Server) -> None:
74+
id_ = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
75+
groupset = TSC.GroupSetItem("All Users")
76+
groupset.id = id_
77+
with requests_mock.mock() as m:
78+
m.put(f"{server.group_sets.baseurl}/{id_}", text=GROUPSET_UPDATE.read_text())
79+
groupset = server.group_sets.update(groupset)
80+
81+
assert groupset.id == id_
82+
assert groupset.name == "All Users"
83+
assert groupset.group_count == 3
84+
assert len(groupset.groups) == 3
85+
86+
assert groupset.groups[0].name == "group-one"
87+
assert groupset.groups[0].id == "gs-1"
88+
assert groupset.groups[1].name == "group-two"
89+
assert groupset.groups[1].id == "gs21"
90+
assert groupset.groups[2].name == "group-three"
91+
assert groupset.groups[2].id == "gs-3"
92+
93+
94+
def test_create(server: TSC.Server) -> None:
95+
groupset = TSC.GroupSetItem("All Users")
96+
with requests_mock.mock() as m:
97+
m.post(server.group_sets.baseurl, text=GROUPSET_CREATE.read_text())
98+
groupset = server.group_sets.create(groupset)
99+
100+
assert groupset.id == "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
101+
assert groupset.name == "All Users"
102+
assert groupset.group_count == 0
103+
assert len(groupset.groups) == 0
104+
105+
106+
def test_add_group(server: TSC.Server) -> None:
107+
groupset = TSC.GroupSetItem("All")
108+
groupset.id = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
109+
group = TSC.GroupItem("Example")
110+
group._id = "ef8b19c0-43b6-11e6-af50-63f5805dbe3c"
111+
112+
with requests_mock.mock() as m:
113+
m.put(f"{server.group_sets.baseurl}/{groupset.id}/groups/{group._id}")
114+
server.group_sets.add_group(groupset, group)
115+
116+
history = m.request_history
117+
118+
assert len(history) == 1
119+
assert history[0].method == "PUT"
120+
assert history[0].url == f"{server.group_sets.baseurl}/{groupset.id}/groups/{group._id}"
121+
122+
123+
def test_remove_group(server: TSC.Server) -> None:
124+
groupset = TSC.GroupSetItem("All")
125+
groupset.id = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
126+
group = TSC.GroupItem("Example")
127+
group._id = "ef8b19c0-43b6-11e6-af50-63f5805dbe3c"
128+
129+
with requests_mock.mock() as m:
130+
m.delete(f"{server.group_sets.baseurl}/{groupset.id}/groups/{group._id}")
131+
server.group_sets.remove_group(groupset, group)
132+
133+
history = m.request_history
134+
135+
assert len(history) == 1
136+
assert history[0].method == "DELETE"
137+
assert history[0].url == f"{server.group_sets.baseurl}/{groupset.id}/groups/{group._id}"
138+
139+
140+
def test_as_reference(server: TSC.Server) -> None:
141+
groupset = TSC.GroupSetItem()
142+
groupset.id = "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
143+
ref = groupset.as_reference(groupset.id)
144+
assert ref.id == groupset.id
145+
assert ref.tag_name == groupset.tag_name
146+
assert isinstance(ref, ResourceReference)

0 commit comments

Comments
 (0)