diff options
author | Nejc Habjan <nejc.habjan@siemens.com> | 2022-01-13 19:49:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-13 19:49:11 +0100 |
commit | 58e5b2528003d2ee6a55084cc32c6a4bf9aa5bd0 (patch) | |
tree | e04f0c6b18e781a2f9e1ff835bf1ae2bad0156c4 | |
parent | 6f64d4098ed4a890838c6cf43d7a679e6be4ac6c (diff) | |
parent | 755e0a32e8ca96a3a3980eb7d7346a1a899ad58b (diff) | |
download | gitlab-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.py | 22 | ||||
-rw-r--r-- | tests/functional/cli/test_cli_v4.py | 28 |
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 |