2424
2525
2626@pytest .fixture
27- def resp_snippet ():
28- merge_request_content = [
29- {
30- "id" :1 ,
31- "iid" :1 ,
32- "project_id" :1 ,
33- "title" :"test1" ,
34- "description" :"fixed login page css paddings" ,
35- "state" :"merged" ,
36- "merged_by" : {
37- "id" :87854 ,
38- "name" :"Douwe Maan" ,
39- "username" :"DouweM" ,
40- "state" :"active" ,
41- "avatar_url" :"https://gitlab.example.com/uploads/-/system/user/avatar/87854/avatar.png" ,
42- "web_url" :"https://gitlab.com/DouweM" ,
43- },
44- "merged_at" :"2018-09-07T11:16:17.520Z" ,
45- "closed_by" :None ,
46- "closed_at" :None ,
47- "created_at" :"2017-04-29T08:46:00Z" ,
48- "updated_at" :"2017-04-29T08:46:00Z" ,
49- "target_branch" :"main" ,
50- "source_branch" :"test1" ,
51- "upvotes" :0 ,
52- "downvotes" :0 ,
53- "author" : {
54- "id" :1 ,
55- "name" :"Administrator" ,
56- "username" :"admin" ,
57- "state" :"active" ,
58- "avatar_url" :None ,
59- "web_url" :"https://gitlab.example.com/admin" ,
60- },
61- "assignee" : {
62- "id" :1 ,
63- "name" :"Administrator" ,
64- "username" :"admin" ,
65- "state" :"active" ,
66- "avatar_url" :None ,
67- "web_url" :"https://gitlab.example.com/admin" ,
68- },
69- "assignees" : [
70- {
71- "name" :"Miss Monserrate Beier" ,
72- "username" :"axel.block" ,
73- "id" :12 ,
74- "state" :"active" ,
75- "avatar_url" :"http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon" ,
76- "web_url" :"https://gitlab.example.com/axel.block" ,
77- }
78- ],
79- "source_project_id" :2 ,
80- "target_project_id" :3 ,
81- "labels" : ["Community contribution" ,"Manage" ],
82- "work_in_progress" :None ,
83- "milestone" : {
84- "id" :5 ,
85- "iid" :1 ,
86- "project_id" :3 ,
87- "title" :"v2.0" ,
88- "description" :"Assumenda aut placeat expedita exercitationem labore sunt enim earum." ,
89- "state" :"closed" ,
90- "created_at" :"2015-02-02T19:49:26.013Z" ,
91- "updated_at" :"2015-02-02T19:49:26.013Z" ,
92- "due_date" :"2018-09-22" ,
93- "start_date" :"2018-08-08" ,
94- "web_url" :"https://gitlab.example.com/my-group/my-project/milestones/1" ,
95- },
96- "merge_when_pipeline_succeeds" :None ,
97- "merge_status" :"can_be_merged" ,
98- "sha" :"8888888888888888888888888888888888888888" ,
99- "merge_commit_sha" :None ,
100- "squash_commit_sha" :None ,
101- "user_notes_count" :1 ,
102- "discussion_locked" :None ,
103- "should_remove_source_branch" :True ,
104- "force_remove_source_branch" :False ,
105- "allow_collaboration" :False ,
106- "allow_maintainer_to_push" :False ,
107- "web_url" :"http://gitlab.example.com/my-group/my-project/merge_requests/1" ,
108- "references" : {
109- "short" :"!1" ,
110- "relative" :"my-group/my-project!1" ,
111- "full" :"my-group/my-project!1" ,
112- },
113- "time_stats" : {
114- "time_estimate" :0 ,
115- "total_time_spent" :0 ,
116- "human_time_estimate" :None ,
117- "human_total_time_spent" :None ,
118- },
119- "squash" :False ,
120- "task_completion_status" : {"count" :0 ,"completed_count" :0 },
121- }
122- ]
27+ def resp_mr_approval_rules ():
12328mr_ars_content = [
12429 {
12530"id" :approval_rule_id ,
@@ -188,20 +93,6 @@ def resp_snippet():
18893 }
18994
19095with responses .RequestsMock (assert_all_requests_are_fired = False )as rsps :
191- rsps .add (
192- method = responses .GET ,
193- url = "http://localhost/api/v4/projects/1/merge_requests" ,
194- json = merge_request_content ,
195- content_type = "application/json" ,
196- status = 200 ,
197- )
198- rsps .add (
199- method = responses .GET ,
200- url = "http://localhost/api/v4/projects/1/merge_requests/1" ,
201- json = merge_request_content [0 ],
202- content_type = "application/json" ,
203- status = 200 ,
204- )
20596rsps .add (
20697method = responses .GET ,
20798url = "http://localhost/api/v4/projects/1/merge_requests/1/approval_rules" ,
@@ -248,7 +139,7 @@ def resp_snippet():
248139yield rsps
249140
250141
251- def test_project_approval_manager_update_uses_post (project , resp_snippet ):
142+ def test_project_approval_manager_update_uses_post (project ):
252143"""Ensure the
253144 gitlab.v4.objects.merge_request_approvals.ProjectApprovalManager object has
254145 _update_uses_post set to True"""
@@ -259,15 +150,15 @@ def test_project_approval_manager_update_uses_post(project, resp_snippet):
259150assert approvals ._update_uses_post is True
260151
261152
262- def test_list_merge_request_approval_rules (project ,resp_snippet ):
263- approval_rules = project .mergerequests .get (1 ).approval_rules .list ()
153+ def test_list_merge_request_approval_rules (project ,resp_mr_approval_rules ):
154+ approval_rules = project .mergerequests .get (1 , lazy = True ).approval_rules .list ()
264155assert len (approval_rules )== 1
265156assert approval_rules [0 ].name == approval_rule_name
266157assert approval_rules [0 ].id == approval_rule_id
267158
268159
269- def test_update_merge_request_approvals_set_approvers (project ,resp_snippet ):
270- approvals = project .mergerequests .get (1 ).approvals
160+ def test_update_merge_request_approvals_set_approvers (project ,resp_mr_approval_rules ):
161+ approvals = project .mergerequests .get (1 , lazy = True ).approvals
271162assert isinstance (
272163approvals ,
273164gitlab .v4 .objects .merge_request_approvals .ProjectMergeRequestApprovalManager ,
@@ -286,8 +177,8 @@ def test_update_merge_request_approvals_set_approvers(project, resp_snippet):
286177assert response .name == approval_rule_name
287178
288179
289- def test_create_merge_request_approvals_set_approvers (project ,resp_snippet ):
290- approvals = project .mergerequests .get (1 ).approvals
180+ def test_create_merge_request_approvals_set_approvers (project ,resp_mr_approval_rules ):
181+ approvals = project .mergerequests .get (1 , lazy = True ).approvals
291182assert isinstance (
292183approvals ,
293184gitlab .v4 .objects .merge_request_approvals .ProjectMergeRequestApprovalManager ,
@@ -305,8 +196,8 @@ def test_create_merge_request_approvals_set_approvers(project, resp_snippet):
305196assert response .name == new_approval_rule_name
306197
307198
308- def test_create_merge_request_approval_rule (project ,resp_snippet ):
309- approval_rules = project .mergerequests .get (1 ).approval_rules
199+ def test_create_merge_request_approval_rule (project ,resp_mr_approval_rules ):
200+ approval_rules = project .mergerequests .get (1 , lazy = True ).approval_rules
310201data = {
311202"name" :new_approval_rule_name ,
312203"approvals_required" :new_approval_rule_approvals_required ,
@@ -321,8 +212,8 @@ def test_create_merge_request_approval_rule(project, resp_snippet):
321212assert response .name == new_approval_rule_name
322213
323214
324- def test_update_merge_request_approval_rule (project ,resp_snippet ):
325- approval_rules = project .mergerequests .get (1 ).approval_rules
215+ def test_update_merge_request_approval_rule (project ,resp_mr_approval_rules ):
216+ approval_rules = project .mergerequests .get (1 , lazy = True ).approval_rules
326217ar_1 = approval_rules .list ()[0 ]
327218ar_1 .user_ids = updated_approval_rule_user_ids
328219ar_1 .approvals_required = updated_approval_rule_approvals_required
@@ -333,8 +224,8 @@ def test_update_merge_request_approval_rule(project, resp_snippet):
333224assert ar_1 .eligible_approvers [0 ]["id" ]== updated_approval_rule_user_ids [0 ]
334225
335226
336- def test_get_merge_request_approval_state (project ,resp_snippet ):
337- merge_request = project .mergerequests .get (1 )
227+ def test_get_merge_request_approval_state (project ,resp_mr_approval_rules ):
228+ merge_request = project .mergerequests .get (1 , lazy = True )
338229approval_state = merge_request .approval_state .get ()
339230assert isinstance (
340231approval_state ,