summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorNejc Habjan <hab.nejc@gmail.com>2020-02-22 22:55:50 +0100
committerNejc Habjan <hab.nejc@gmail.com>2020-02-22 23:00:29 +0100
commitc313c2b01d796418539e42d578fed635f750cdc1 (patch)
tree7b53057dc000d06b1929a02b11ef929a0ff4be04 /tools
parente8f0921d164c4b7db78e2f62e75eb32094b4456e (diff)
downloadgitlab-c313c2b01d796418539e42d578fed635f750cdc1.tar.gz
feat: add support for user memberships API (#1009)
Diffstat (limited to 'tools')
-rwxr-xr-xtools/cli_test_v4.sh4
-rw-r--r--tools/python_test_v4.py29
2 files changed, 33 insertions, 0 deletions
diff --git a/tools/cli_test_v4.sh b/tools/cli_test_v4.sh
index b7ed708..cf157f4 100755
--- a/tools/cli_test_v4.sh
+++ b/tools/cli_test_v4.sh
@@ -61,6 +61,10 @@ testcase "adding member to a project" '
--user-id "$USER_ID" --access-level 40 >/dev/null 2>&1
'
+testcase "listing user memberships" '
+ GITLAB user-membership list --user-id "$USER_ID" >/dev/null 2>&1
+'
+
testcase "file creation" '
GITLAB project-file create --project-id "$PROJECT_ID" \
--file-path README --branch master --content "CONTENT" \
diff --git a/tools/python_test_v4.py b/tools/python_test_v4.py
index 49f99e5..0703ee3 100644
--- a/tools/python_test_v4.py
+++ b/tools/python_test_v4.py
@@ -266,6 +266,35 @@ group1.members.create({"access_level": gitlab.const.GUEST_ACCESS, "user_id": use
group2.members.create({"access_level": gitlab.const.OWNER_ACCESS, "user_id": user2.id})
+# User memberships (admin only)
+memberships1 = user1.memberships.list()
+assert len(memberships1) == 1
+
+memberships2 = user2.memberships.list()
+assert len(memberships2) == 2
+
+membership = memberships1[0]
+assert membership.source_type == "Namespace"
+assert membership.access_level == gitlab.const.OWNER_ACCESS
+
+project_memberships = user1.memberships.list(type="Project")
+assert len(project_memberships) == 0
+
+group_memberships = user1.memberships.list(type="Namespace")
+assert len(group_memberships) == 1
+
+try:
+ membership = user1.memberships.list(type="Invalid")
+except gitlab.GitlabListError as e:
+ error_message = e.error_message
+assert error_message == "type does not have a valid value"
+
+try:
+ user1.memberships.list(sudo=user1.name)
+except gitlab.GitlabListError as e:
+ error_message = e.error_message
+assert error_message == "403 Forbidden"
+
# Administrator belongs to the groups
assert len(group1.members.list()) == 3
assert len(group2.members.list()) == 2