Skip to content

Commit 58e5b25

Browse files
authored
Merge pull request #1827 from python-gitlab/jlvillal/all_objects
fix: members: use new *All objects for *AllManager managers
2 parents 6f64d40 + 755e0a3 commit 58e5b25

File tree

2 files changed

+44
-6
lines changed

2 files changed

+44
-6
lines changed

gitlab/v4/objects/members.py

+16-6
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
"GroupBillableMemberMembership",
1818
"GroupBillableMemberMembershipManager",
1919
"GroupMember",
20+
"GroupMemberAll",
2021
"GroupMemberManager",
2122
"GroupMemberAllManager",
2223
"ProjectMember",
24+
"ProjectMemberAll",
2325
"ProjectMemberManager",
2426
"ProjectMemberAllManager",
2527
]
@@ -70,15 +72,19 @@ class GroupBillableMemberMembershipManager(ListMixin, RESTManager):
7072
_from_parent_attrs = {"group_id": "group_id", "user_id": "id"}
7173

7274

75+
class GroupMemberAll(RESTObject):
76+
_short_print_attr = "username"
77+
78+
7379
class GroupMemberAllManager(RetrieveMixin, RESTManager):
7480
_path = "/groups/{group_id}/members/all"
75-
_obj_cls = GroupMember
81+
_obj_cls = GroupMemberAll
7682
_from_parent_attrs = {"group_id": "id"}
7783

7884
def get(
7985
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
80-
) -> GroupMember:
81-
return cast(GroupMember, super().get(id=id, lazy=lazy, **kwargs))
86+
) -> GroupMemberAll:
87+
return cast(GroupMemberAll, super().get(id=id, lazy=lazy, **kwargs))
8288

8389

8490
class ProjectMember(SaveMixin, ObjectDeleteMixin, RESTObject):
@@ -103,12 +109,16 @@ def get(
103109
return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
104110

105111

112+
class ProjectMemberAll(RESTObject):
113+
_short_print_attr = "username"
114+
115+
106116
class ProjectMemberAllManager(RetrieveMixin, RESTManager):
107117
_path = "/projects/{project_id}/members/all"
108-
_obj_cls = ProjectMember
118+
_obj_cls = ProjectMemberAll
109119
_from_parent_attrs = {"project_id": "id"}
110120

111121
def get(
112122
self, id: Union[str, int], lazy: bool = False, **kwargs: Any
113-
) -> ProjectMember:
114-
return cast(ProjectMember, super().get(id=id, lazy=lazy, **kwargs))
123+
) -> ProjectMemberAll:
124+
return cast(ProjectMemberAll, super().get(id=id, lazy=lazy, **kwargs))

tests/functional/cli/test_cli_v4.py

+28
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,31 @@ def test_delete_group_deploy_token(gitlab_cli, group_deploy_token):
701701
# TODO assert not in list
702702

703703

704+
def test_project_member_all(gitlab_cli, project):
705+
cmd = [
706+
"project-member-all",
707+
"list",
708+
"--project-id",
709+
project.id,
710+
]
711+
ret = gitlab_cli(cmd)
712+
713+
assert ret.success
714+
715+
716+
def test_group_member_all(gitlab_cli, group):
717+
cmd = [
718+
"group-member-all",
719+
"list",
720+
"--group-id",
721+
group.id,
722+
]
723+
ret = gitlab_cli(cmd)
724+
725+
assert ret.success
726+
727+
728+
# Deleting the project and group. Add your tests above here.
704729
def test_delete_project(gitlab_cli, project):
705730
cmd = ["project", "delete", "--id", project.id]
706731
ret = gitlab_cli(cmd)
@@ -713,3 +738,6 @@ def test_delete_group(gitlab_cli, group):
713738
ret = gitlab_cli(cmd)
714739

715740
assert ret.success
741+
742+
743+
# Don't add tests below here as the group and project have been deleted

0 commit comments

Comments
 (0)