Skip to content

Commit

Permalink
fix(test): use different ids for merge request, approval rule, project
Browse files Browse the repository at this point in the history
The original bug was that the merge request identifier was used instead of the
approval rule identifier. The test didn't notice that because it used `1` for
all identifiers. Make these identifiers different so that a mixup will become
apparent.
  • Loading branch information
Sjord authored and JohnVillalovos committed May 13, 2024
1 parent b8b3849 commit c23e6bd
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions tests/unit/objects/test_project_merge_request_approvals.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import gitlab
from gitlab.mixins import UpdateMethod

approval_rule_id = 1
approval_rule_id = 7
approval_rule_name = "security"
approvals_required = 3
user_ids = [5, 50]
Expand Down Expand Up @@ -96,21 +96,21 @@ def resp_mr_approval_rules():
with responses.RequestsMock(assert_all_requests_are_fired=False) as rsps:
rsps.add(
method=responses.GET,
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_rules",
url="http://localhost/api/v4/projects/1/merge_requests/3/approval_rules",
json=mr_ars_content,
content_type="application/json",
status=200,
)
rsps.add(
method=responses.GET,
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_rules/1",
url="http://localhost/api/v4/projects/1/merge_requests/3/approval_rules/7",
json=mr_ars_content[0],
content_type="application/json",
status=200,
)
rsps.add(
method=responses.GET,
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_state",
url="http://localhost/api/v4/projects/1/merge_requests/3/approval_state",
json=mr_approval_state_content,
content_type="application/json",
status=200,
Expand All @@ -122,7 +122,7 @@ def resp_mr_approval_rules():

rsps.add(
method=responses.POST,
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_rules",
url="http://localhost/api/v4/projects/1/merge_requests/3/approval_rules",
json=new_mr_ars_content,
content_type="application/json",
status=200,
Expand All @@ -139,7 +139,7 @@ def resp_mr_approval_rules():

rsps.add(
method=responses.PUT,
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_rules/1",
url="http://localhost/api/v4/projects/1/merge_requests/3/approval_rules/7",
json=updated_mr_ars_content,
content_type="application/json",
status=200,
Expand All @@ -152,7 +152,7 @@ def resp_delete_mr_approval_rule():
with responses.RequestsMock() as rsps:
rsps.add(
method=responses.DELETE,
url="http://localhost/api/v4/projects/1/merge_requests/1/approval_rules/1",
url="http://localhost/api/v4/projects/1/merge_requests/3/approval_rules/7",
status=204,
)
yield rsps
Expand All @@ -170,20 +170,20 @@ def test_project_approval_manager_update_method_post(project):


def test_list_merge_request_approval_rules(project, resp_mr_approval_rules):
approval_rules = project.mergerequests.get(1, lazy=True).approval_rules.list()
approval_rules = project.mergerequests.get(3, lazy=True).approval_rules.list()
assert len(approval_rules) == 1
assert approval_rules[0].name == approval_rule_name
assert approval_rules[0].id == approval_rule_id
repr(approval_rules) # ensure that `repr()` doesn't raise an exception


def test_delete_merge_request_approval_rule(project, resp_delete_mr_approval_rule):
merge_request = project.mergerequests.get(1, lazy=True)
merge_request = project.mergerequests.get(3, lazy=True)
merge_request.approval_rules.delete(approval_rule_id)


def test_update_merge_request_approvals_set_approvers(project, resp_mr_approval_rules):
approvals = project.mergerequests.get(1, lazy=True).approvals
approvals = project.mergerequests.get(3, lazy=True).approvals
assert isinstance(
approvals,
gitlab.v4.objects.merge_request_approvals.ProjectMergeRequestApprovalManager,
Expand All @@ -203,7 +203,7 @@ def test_update_merge_request_approvals_set_approvers(project, resp_mr_approval_


def test_create_merge_request_approvals_set_approvers(project, resp_mr_approval_rules):
approvals = project.mergerequests.get(1, lazy=True).approvals
approvals = project.mergerequests.get(3, lazy=True).approvals
assert isinstance(
approvals,
gitlab.v4.objects.merge_request_approvals.ProjectMergeRequestApprovalManager,
Expand All @@ -222,7 +222,7 @@ def test_create_merge_request_approvals_set_approvers(project, resp_mr_approval_


def test_create_merge_request_approval_rule(project, resp_mr_approval_rules):
approval_rules = project.mergerequests.get(1, lazy=True).approval_rules
approval_rules = project.mergerequests.get(3, lazy=True).approval_rules
data = {
"name": new_approval_rule_name,
"approvals_required": new_approval_rule_approvals_required,
Expand All @@ -238,7 +238,7 @@ def test_create_merge_request_approval_rule(project, resp_mr_approval_rules):


def test_update_merge_request_approval_rule(project, resp_mr_approval_rules):
approval_rules = project.mergerequests.get(1, lazy=True).approval_rules
approval_rules = project.mergerequests.get(3, lazy=True).approval_rules
ar_1 = approval_rules.list()[0]
ar_1.user_ids = updated_approval_rule_user_ids
ar_1.approvals_required = updated_approval_rule_approvals_required
Expand All @@ -250,7 +250,7 @@ def test_update_merge_request_approval_rule(project, resp_mr_approval_rules):


def test_get_merge_request_approval_rule(project, resp_mr_approval_rules):
merge_request = project.mergerequests.get(1, lazy=True)
merge_request = project.mergerequests.get(3, lazy=True)
approval_rule = merge_request.approval_rules.get(approval_rule_id)
assert isinstance(
approval_rule,
Expand All @@ -261,7 +261,7 @@ def test_get_merge_request_approval_rule(project, resp_mr_approval_rules):


def test_get_merge_request_approval_state(project, resp_mr_approval_rules):
merge_request = project.mergerequests.get(1, lazy=True)
merge_request = project.mergerequests.get(3, lazy=True)
approval_state = merge_request.approval_state.get()
assert isinstance(
approval_state,
Expand Down

0 comments on commit c23e6bd

Please sign in to comment.