summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2022-01-13 19:49:11 +0100
committerGitHub <noreply@github.com>2022-01-13 19:49:11 +0100
commit58e5b2528003d2ee6a55084cc32c6a4bf9aa5bd0 (patch)
treee04f0c6b18e781a2f9e1ff835bf1ae2bad0156c4
parent6f64d4098ed4a890838c6cf43d7a679e6be4ac6c (diff)
parent755e0a32e8ca96a3a3980eb7d7346a1a899ad58b (diff)
downloadgitlab-58e5b2528003d2ee6a55084cc32c6a4bf9aa5bd0.tar.gz
Merge pull request #1827 from python-gitlab/jlvillal/all_objects
fix: members: use new *All objects for *AllManager managers
-rw-r--r--gitlab/v4/objects/members.py22
-rw-r--r--tests/functional/cli/test_cli_v4.py28
2 files changed, 44 insertions, 6 deletions
diff --git a/gitlab/v4/objects/members.py b/gitlab/v4/objects/members.py
index 8fa2bb3..c7be039 100644
--- a/gitlab/v4/objects/members.py
+++ b/gitlab/v4/objects/members.py
@@ -17,9 +17,11 @@ __all__ = [
"GroupBillableMemberMembership",
"GroupBillableMemberMembershipManager",
"GroupMember",
+ "GroupMemberAll",
"GroupMemberManager",
"GroupMemberAllManager",
"ProjectMember",
+ "ProjectMemberAll",
"ProjectMemberManager",
"ProjectMemberAllManager",
]
@@ -70,15 +72,19 @@ class GroupBillableMemberMembershipManager(ListMixin, RESTManager):
_from_parent_attrs = {"group_id": "group_id", "user_id": "id"}
+class GroupMemberAll(RESTObject):
+ _short_print_attr = "username"
+
+
class GroupMemberAllManager(RetrieveMixin, RESTManager):
_path = "/groups/{group_id}/members/all"
- _obj_cls = GroupMember
+ _obj_cls = GroupMemberAll
_from_parent_attrs = {"group_id": "id"}
def get(
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
- ) -> GroupMember:
- return cast(GroupMember, super().get(id=id, lazy=lazy, **kwargs))
+ ) -> GroupMemberAll:
+ return cast(GroupMemberAll, super().get(id=id, lazy=lazy, **kwargs))
class ProjectMember(SaveMixin, ObjectDeleteMixin, RESTObject):
@@ -103,12 +109,16 @@ class ProjectMemberManager(CRUDMixin, RESTManager):
return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
+class ProjectMemberAll(RESTObject):
+ _short_print_attr = "username"
+
+
class ProjectMemberAllManager(RetrieveMixin, RESTManager):
_path = "/projects/{project_id}/members/all"
- _obj_cls = ProjectMember
+ _obj_cls = ProjectMemberAll
_from_parent_attrs = {"project_id": "id"}
def get(
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
- ) -> ProjectMember:
- return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
+ ) -> ProjectMemberAll:
+ return cast(ProjectMemberAll, super().get(id=id, lazy=lazy, **kwargs))
diff --git a/tests/functional/cli/test_cli_v4.py b/tests/functional/cli/test_cli_v4.py
index 91c0afa..da64957 100644
--- a/tests/functional/cli/test_cli_v4.py
+++ b/tests/functional/cli/test_cli_v4.py
@@ -701,6 +701,31 @@ def test_delete_group_deploy_token(gitlab_cli, group_deploy_token):
# TODO assert not in list
+def test_project_member_all(gitlab_cli, project):
+ cmd = [
+ "project-member-all",
+ "list",
+ "--project-id",
+ project.id,
+ ]
+ ret = gitlab_cli(cmd)
+
+ assert ret.success
+
+
+def test_group_member_all(gitlab_cli, group):
+ cmd = [
+ "group-member-all",
+ "list",
+ "--group-id",
+ group.id,
+ ]
+ ret = gitlab_cli(cmd)
+
+ assert ret.success
+
+
+# Deleting the project and group. Add your tests above here.
def test_delete_project(gitlab_cli, project):
cmd = ["project", "delete", "--id", project.id]
ret = gitlab_cli(cmd)
@@ -713,3 +738,6 @@ def test_delete_group(gitlab_cli, group):
ret = gitlab_cli(cmd)
assert ret.success
+
+
+# Don't add tests below here as the group and project have been deleted