4646 "duration" : 70 ,
4747}
4848
49+ merge_train_update = mr_content .copy ()
50+ merge_train_update ["id" ] = 123
51+ merge_train_update ["pipeline" ]["sha" ] = "ef33a3zxc3"
52+
4953
5054@pytest .fixture
5155def resp_list_merge_trains ():
@@ -65,26 +69,51 @@ def resp_merge_trains_merge_request_get():
6569 with responses .RequestsMock () as rsps :
6670 rsps .add (
6771 method = responses .GET ,
68- url = "http://localhost/api/v4/projects/1/merge_trains/merge_requests/123 " ,
72+ url = "http://localhost/api/v4/projects/1/merge_trains/merge_requests/110 " ,
6973 json = mr_content ,
7074 content_type = "application/json" ,
7175 status = 200 ,
7276 )
7377 yield rsps
7478
7579
80+ @pytest .fixture
81+ def resp_merge_trains_merge_request_post ():
82+ with responses .RequestsMock () as rsps :
83+ rsps .add (
84+ method = responses .POST ,
85+ url = "http://localhost/api/v4/projects/1/merge_trains/merge_requests/123" ,
86+ json = [merge_train_update ],
87+ content_type = "application/json" ,
88+ status = 200 ,
89+ )
90+ yield rsps
91+
92+
7693def test_list_project_merge_requests (project , resp_list_merge_trains ):
7794 merge_trains = project .merge_trains .list ()
7895 assert isinstance (merge_trains [0 ], ProjectMergeTrain )
7996 assert merge_trains [0 ].id == mr_content ["id" ]
8097
8198
82- def test_merge_trains_status_merge_request (
99+ def test_merge_trains_status_merge_request_get_status (
83100 project , resp_merge_trains_merge_request_get
84101):
85- # flow will be : project -> merge_trains : -> get merge_requests -> merge_request_iod
86102 merge_train_mr : ProjectMergeTrainMergeRequest = project .merge_trains .get (
87103 1 , lazy = True
88- ).merge_requests .get (123 )
104+ ).merge_requests .get (110 )
89105 assert isinstance (merge_train_mr , ProjectMergeTrainMergeRequest )
90106 assert merge_train_mr .get_id () == 110
107+ assert merge_train_mr .pipeline .get ("status" ) == mr_content ["pipeline" ]["status" ]
108+
109+
110+ def test_merge_train_add_merge_request (project , resp_merge_trains_merge_request_post ):
111+ merge_train : ProjectMergeTrain = project .merge_trains .get (1 , lazy = True )
112+ merge_requests_update = merge_train .merge_requests .update (
113+ 123 , new_data = {"sha" : "ef33a3zxc3" }
114+ )
115+ assert isinstance (merge_train , ProjectMergeTrain )
116+ assert (
117+ merge_requests_update [0 ]["pipeline" ]["sha" ]
118+ == merge_train_update ["pipeline" ]["sha" ]
119+ )
0 commit comments