@@ -245,6 +245,55 @@ def test_create_commit_success(client, requests_mock):
245245 assert requests_mock .last_request .method == "POST"
246246 assert requests_mock .last_request .json () == request_data
247247
248+ def test_create_commit_with_branch_id (client , requests_mock ):
249+ """Tests commit creation with a branch query parameter."""
250+ branch_id = "branch_123"
251+ mock_url = f"{ TEST_BASE_URL } /projects/{ TEST_PROJECT_ID } /commits?branchId={ branch_id } "
252+ request_data = {"message" : "Branch commit" , "parentCommitId" : None }
253+ response_data = {"id" : "branch_commit_id" , ** request_data }
254+ requests_mock .post (mock_url , json = response_data , status_code = 200 )
255+
256+ created_commit = client .create_commit (TEST_PROJECT_ID , request_data , branch_id = branch_id )
257+
258+ assert created_commit == response_data
259+ assert requests_mock .last_request .url == mock_url
260+ assert requests_mock .last_request .method == "POST"
261+ assert requests_mock .last_request .json () == request_data
262+
263+ def test_create_commit_with_replace (client , requests_mock ):
264+ """Tests commit creation with the replace query parameter."""
265+ mock_url = f"{ TEST_BASE_URL } /projects/{ TEST_PROJECT_ID } /commits?replace=true"
266+ request_data = {"message" : "Replace commit" , "parentCommitId" : None }
267+ response_data = {"id" : "replace_commit_id" , ** request_data }
268+ requests_mock .post (mock_url , json = response_data , status_code = 200 )
269+
270+ created_commit = client .create_commit (TEST_PROJECT_ID , request_data , replace = True )
271+
272+ assert created_commit == response_data
273+ assert requests_mock .last_request .url == mock_url
274+ assert requests_mock .last_request .method == "POST"
275+ assert requests_mock .last_request .json () == request_data
276+
277+ def test_create_commit_with_branch_id_and_replace (client , requests_mock ):
278+ """Tests commit creation with both branchId and replace query parameters."""
279+ branch_id = "branch_123"
280+ mock_url = f"{ TEST_BASE_URL } /projects/{ TEST_PROJECT_ID } /commits?replace=true&branchId={ branch_id } "
281+ request_data = {"message" : "Replace branch commit" , "parentCommitId" : None }
282+ response_data = {"id" : "replace_branch_commit_id" , ** request_data }
283+ requests_mock .post (mock_url , json = response_data , status_code = 200 )
284+
285+ created_commit = client .create_commit (
286+ TEST_PROJECT_ID ,
287+ request_data ,
288+ branch_id = branch_id ,
289+ replace = True ,
290+ )
291+
292+ assert created_commit == response_data
293+ assert requests_mock .last_request .url == mock_url
294+ assert requests_mock .last_request .method == "POST"
295+ assert requests_mock .last_request .json () == request_data
296+
248297def test_create_commit_bad_request (client , requests_mock ):
249298 """Tests 400 Bad Request during commit creation."""
250299 mock_url = f"{ TEST_BASE_URL } /projects/{ TEST_PROJECT_ID } /commits"
@@ -460,4 +509,4 @@ def test_list_relationships_element_not_found(client, requests_mock):
460509 mock_url = f"{ TEST_BASE_URL } /projects/{ TEST_PROJECT_ID } /commits/{ TEST_COMMIT_ID } /elements/invalid_element/relationships?direction=both"
461510 requests_mock .get (mock_url , status_code = 404 )
462511 with pytest .raises (SysMLV2NotFoundError ):
463- client .list_relationships (TEST_PROJECT_ID , "invalid_element" , TEST_COMMIT_ID )
512+ client .list_relationships (TEST_PROJECT_ID , "invalid_element" , TEST_COMMIT_ID )
0 commit comments