1717 from_git_rev_read ,
1818 get_author_info_from_short_sha ,
1919 get_base_branch ,
20+ get_commits_from_backport_branch ,
2021 get_current_branch ,
2122 get_full_sha_from_short ,
22- get_is_already_committed ,
2323 get_sha1_from ,
2424 get_state ,
2525 load_config ,
2626 load_val_from_git_cfg ,
2727 normalize_commit_message ,
28- reset_is_already_committed ,
2928 reset_state ,
3029 reset_stored_config_ref ,
3130 set_state ,
@@ -102,6 +101,12 @@ def git_cherry_pick():
102101 )
103102
104103
104+ @pytest .fixture
105+ def git_reset ():
106+ git_reset_cmd = "git" , "reset"
107+ return lambda * extra_args : (subprocess .run (git_reset_cmd + extra_args , check = True ))
108+
109+
105110@pytest .fixture
106111def git_config ():
107112 git_config_cmd = "git" , "config"
@@ -851,7 +856,7 @@ def test_backport_success(
851856@pytest .mark .parametrize ("already_committed" , (True , False ))
852857@pytest .mark .parametrize ("push" , (True , False ))
853858def test_backport_pause_and_continue (
854- tmp_git_repo_dir , git_branch , git_add , git_commit , git_checkout , already_committed , push
859+ tmp_git_repo_dir , git_branch , git_add , git_commit , git_checkout , git_reset , already_committed , push
855860):
856861 cherry_pick_target_branches = ("3.8" ,)
857862 pr_remote = "origin"
@@ -872,18 +877,17 @@ def test_backport_pause_and_continue(
872877 pr_remote , scm_revision , cherry_pick_target_branches , push = False
873878 )
874879
875- with mock .patch .object (cherry_picker , "checkout_branch" ), mock .patch .object (
876- cherry_picker , "fetch_upstream"
877- ), mock .patch .object (
880+ with mock .patch .object (cherry_picker , "fetch_upstream" ), mock .patch .object (
878881 cherry_picker , "amend_commit_message" , return_value = "commit message"
879882 ):
880883 cherry_picker .backport ()
881884
882- assert get_is_already_committed ()
885+ assert len ( get_commits_from_backport_branch ( cherry_pick_target_branches [ 0 ])) == 1
883886 assert get_state () == WORKFLOW_STATES .BACKPORT_PAUSED
884887
885888 if not already_committed :
886- reset_is_already_committed ()
889+ git_reset ("HEAD~1" )
890+ assert len (get_commits_from_backport_branch (cherry_pick_target_branches [0 ])) == 0
887891
888892 with mock .patch ("cherry_picker.cherry_picker.validate_sha" , return_value = True ):
889893 cherry_picker = CherryPicker (pr_remote , "" , [], push = push )
@@ -905,22 +909,24 @@ def test_backport_pause_and_continue(
905909 "cherry_picker.cherry_picker.get_current_branch" ,
906910 return_value = "backport-xxx-3.8" ,
907911 ), mock .patch .object (
908- cherry_picker , "get_commit_message " , return_value = commit_message
909- ) as get_commit_message , mock .patch .object (
912+ cherry_picker , "amend_commit_message " , return_value = commit_message
913+ ) as amend_commit_message , mock .patch .object (
910914 cherry_picker , "get_updated_commit_message" , return_value = commit_message
911915 ) as get_updated_commit_message , mock .patch .object (
912916 cherry_picker , "checkout_branch"
913917 ), mock .patch .object (
914918 cherry_picker , "fetch_upstream"
919+ ), mock .patch .object (
920+ cherry_picker , "cleanup_branch"
915921 ):
916922 cherry_picker .continue_cherry_pick ()
917923
918924 if already_committed :
919- get_commit_message .assert_called_once ()
925+ amend_commit_message .assert_called_once ()
920926 get_updated_commit_message .assert_not_called ()
921927 else :
922928 get_updated_commit_message .assert_called_once ()
923- get_commit_message .assert_not_called ()
929+ amend_commit_message .assert_not_called ()
924930
925931 if push :
926932 assert get_state () == WORKFLOW_STATES .BACKPORTING_CONTINUATION_SUCCEED
0 commit comments