diff options
author | Jacob Henner <code@ventricle.us> | 2021-10-14 14:04:45 -0400 |
---|---|---|
committer | Jacob Henner <code@ventricle.us> | 2021-10-19 21:24:01 -0400 |
commit | f41b0937aec5f4a5efba44155cc2db77c7124e5e (patch) | |
tree | 8976491ed88eefd6a06c934b1b342c8a8a370ad3 /tests/unit | |
parent | 5a1678f43184bd459132102cc13cf8426fe0449d (diff) | |
download | gitlab-f41b0937aec5f4a5efba44155cc2db77c7124e5e.tar.gz |
feat(api): add merge request approval state
Add support for merge request approval state
Diffstat (limited to 'tests/unit')
-rw-r--r-- | tests/unit/objects/test_project_merge_request_approvals.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/unit/objects/test_project_merge_request_approvals.py b/tests/unit/objects/test_project_merge_request_approvals.py index 16d58bd..47e29dd 100644 --- a/tests/unit/objects/test_project_merge_request_approvals.py +++ b/tests/unit/objects/test_project_merge_request_approvals.py @@ -178,6 +178,15 @@ def resp_snippet(): } ] + approval_state_rules = copy.deepcopy(mr_ars_content) + approval_state_rules[0]["approved"] = False + approval_state_rules[0]["approved_by"] = [] + + mr_approval_state_content = { + "approval_rules_overwritten": False, + "rules": approval_state_rules, + } + with responses.RequestsMock(assert_all_requests_are_fired=False) as rsps: rsps.add( method=responses.GET, @@ -200,6 +209,13 @@ def resp_snippet(): content_type="application/json", status=200, ) + rsps.add( + method=responses.GET, + url="http://localhost/api/v4/projects/1/merge_requests/1/approval_state", + json=mr_approval_state_content, + content_type="application/json", + status=200, + ) new_mr_ars_content = dict(mr_ars_content[0]) new_mr_ars_content["name"] = new_approval_rule_name @@ -315,3 +331,18 @@ def test_update_merge_request_approval_rule(project, resp_snippet): assert ar_1.approvals_required == updated_approval_rule_approvals_required assert len(ar_1.eligible_approvers) == len(updated_approval_rule_user_ids) assert ar_1.eligible_approvers[0]["id"] == updated_approval_rule_user_ids[0] + + +def test_get_merge_request_approval_state(project, resp_snippet): + merge_request = project.mergerequests.get(1) + approval_state = merge_request.approval_state.get() + assert isinstance( + approval_state, + gitlab.v4.objects.merge_request_approvals.ProjectMergeRequestApprovalState, + ) + assert not approval_state.approval_rules_overwritten + assert len(approval_state.rules) == 1 + assert approval_state.rules[0]["name"] == approval_rule_name + assert approval_state.rules[0]["id"] == approval_rule_id + assert not approval_state.rules[0]["approved"] + assert approval_state.rules[0]["approved_by"] == [] |