Skip to content

Commit 14fd591

Browse files
committed
add unit tests
1 parent b0def22 commit 14fd591

File tree

1 file changed

+67
-5
lines changed

1 file changed

+67
-5
lines changed

tests/posit/connect/test_permissions.py

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,23 +190,85 @@ def test(self):
190190
role=role,
191191
)
192192

193-
with pytest.raises(TypeError):
193+
# assert
194+
assert permission == fake_permission
195+
196+
def test_assertions(self):
197+
# setup
198+
principal_guid = "principal_guid"
199+
content_guid = "content_guid"
200+
params = ResourceParameters(requests.Session(), Url("https://connect.example/__api__"))
201+
permissions = Permissions(params, content_guid=content_guid)
202+
user = User(params, guid=principal_guid)
203+
group = User(params, guid=principal_guid)
204+
205+
# behavior
206+
with pytest.raises(TypeError, match="str"):
194207
permissions.create( # pyright: ignore[reportCallIssue]
208+
user,
209+
group,
195210
"not a user or group",
196211
)
197212
with pytest.raises(ValueError):
198213
permissions.create( # pyright: ignore[reportCallIssue]
199-
User(params, guid=principal_guid),
214+
user,
200215
principal_guid=principal_guid,
201216
)
202217
with pytest.raises(ValueError):
203218
permissions.create( # pyright: ignore[reportCallIssue]
204-
User(params, guid=principal_guid),
205-
principal_type=principal_type,
219+
user,
220+
principal_type="viewer",
206221
)
207222

223+
@responses.activate
224+
def test_multiple(self):
225+
# data
226+
content_guid = "CONTENT_GUID"
227+
user_guid = "USER_GUID"
228+
group_guid = "GROUP_GUID"
229+
230+
fake_user = {
231+
"principal_guid": user_guid,
232+
"principal_type": "user",
233+
"role": "viewer",
234+
}
235+
fake_group = {
236+
"principal_guid": group_guid,
237+
"principal_type": "group",
238+
"role": "viewer",
239+
}
240+
res_user = responses.post(
241+
f"https://connect.example/__api__/v1/content/{content_guid}/permissions",
242+
json=fake_user,
243+
match=[matchers.json_params_matcher(fake_user)],
244+
)
245+
res_group = responses.post(
246+
f"https://connect.example/__api__/v1/content/{content_guid}/permissions",
247+
json=fake_group,
248+
match=[matchers.json_params_matcher(fake_group)],
249+
)
250+
251+
# setup
252+
params = ResourceParameters(requests.Session(), Url("https://connect.example/__api__"))
253+
permissions = Permissions(params, content_guid=content_guid)
254+
user = User(params, guid=user_guid)
255+
group = Group(params, guid=group_guid)
256+
257+
# invoke
258+
permissions = permissions.create(user, group, role="viewer")
259+
208260
# assert
209-
assert permission == fake_permission
261+
assert res_user.call_count == 1
262+
assert res_group.call_count == 1
263+
264+
assert isinstance(permissions, list)
265+
for permission in permissions:
266+
assert isinstance(permission, Permission)
267+
268+
assert permissions == [
269+
Permission(params, principal_guid=user_guid, principal_type="user", role="viewer"),
270+
Permission(params, principal_guid=group_guid, principal_type="group", role="viewer"),
271+
]
210272

211273

212274
class TestPermissionsFind:

0 commit comments

Comments
 (0)