@@ -163,3 +163,35 @@ def test_merge_request_large_commit_message(
163
163
164
164
# Ensure we can get the MR branch
165
165
project .branches .get (source_branch )
166
+
167
+
168
+ def test_merge_request_merge_ref (merge_request ) -> None :
169
+ source_branch = "merge_ref_test"
170
+ mr = merge_request (source_branch = source_branch )
171
+
172
+ response = mr .merge_ref ()
173
+ assert response and "commit_id" in response
174
+
175
+
176
+ def test_merge_request_merge_ref_should_fail (
177
+ project , merge_request , wait_for_sidekiq
178
+ ) -> None :
179
+ source_branch = "merge_ref_test2"
180
+ mr = merge_request (source_branch = source_branch )
181
+
182
+ # Create conflict
183
+ project .files .create (
184
+ {
185
+ "file_path" : f"README.{ source_branch } " ,
186
+ "branch" : project .default_branch ,
187
+ "content" : "Different initial content" ,
188
+ "commit_message" : "Another commit in main branch" ,
189
+ }
190
+ )
191
+ result = wait_for_sidekiq (timeout = 60 )
192
+ assert result is True , "sidekiq process should have terminated but did not"
193
+
194
+ # Check for non-existing merge_ref for MR with conflicts
195
+ with pytest .raises (gitlab .exceptions .GitlabGetError ):
196
+ response = mr .merge_ref ()
197
+ assert "commit_id" not in response
0 commit comments