""" GitLab API: https://docs.gitlab.com/ee/api/members.html """ import pytest import responses from gitlab.v4.objects import GroupBillableMember billable_members_content = [ { "id": 1, "username": "raymond_smith", "name": "Raymond Smith", "state": "active", "avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon", "web_url": "http://192.168.1.8:3000/root", "last_activity_on": "2021-01-27", "membership_type": "group_member", "removable": True, } ] @pytest.fixture def resp_list_billable_group_members(): with responses.RequestsMock() as rsps: rsps.add( method=responses.GET, url="http://localhost/api/v4/groups/1/billable_members", json=billable_members_content, content_type="application/json", status=200, ) yield rsps @pytest.fixture def resp_delete_billable_group_member(no_content): with responses.RequestsMock() as rsps: rsps.add( method=responses.DELETE, url="http://localhost/api/v4/groups/1/billable_members/1", json=no_content, content_type="application/json", status=204, ) yield rsps def test_list_group_billable_members(group, resp_list_billable_group_members): billable_members = group.billable_members.list() assert isinstance(billable_members, list) assert isinstance(billable_members[0], GroupBillableMember) assert billable_members[0].removable is True def test_delete_group_billable_member(group, resp_delete_billable_group_member): group.billable_members.delete(1)