@@ -49,6 +49,22 @@ def git_add():
49
49
)
50
50
51
51
52
+ @pytest .fixture
53
+ def git_checkout ():
54
+ git_checkout_cmd = 'git' , 'checkout'
55
+ return lambda * extra_args : (
56
+ subprocess .run (git_checkout_cmd + extra_args , check = True )
57
+ )
58
+
59
+
60
+ @pytest .fixture
61
+ def git_branch ():
62
+ git_branch_cmd = 'git' , 'branch'
63
+ return lambda * extra_args : (
64
+ subprocess .run (git_branch_cmd + extra_args , check = True )
65
+ )
66
+
67
+
52
68
@pytest .fixture
53
69
def git_commit ():
54
70
git_commit_cmd = 'git' , 'commit' , '-m'
@@ -483,3 +499,34 @@ def _fetch(cmd):
483
499
with mock .patch .object (cherry_picker , 'run_cmd' , _fetch ):
484
500
getattr (cherry_picker , method_name )()
485
501
assert get_state () == end_state
502
+
503
+
504
+ def test_cleanup_branch (
505
+ tmp_git_repo_dir , git_checkout ,
506
+ ):
507
+ assert get_state () == 'UNSET'
508
+
509
+ with mock .patch (
510
+ 'cherry_picker.cherry_picker.validate_sha' ,
511
+ return_value = True ,
512
+ ):
513
+ cherry_picker = CherryPicker ('origin' , 'xxx' , [])
514
+ assert get_state () == 'UNSET'
515
+
516
+ git_checkout ('-b' , 'some_branch' )
517
+ cherry_picker .cleanup_branch ('some_branch' )
518
+ assert get_state () == 'REMOVED_BACKPORT_BRANCH'
519
+
520
+
521
+ def test_cleanup_branch_fail (tmp_git_repo_dir ):
522
+ assert get_state () == 'UNSET'
523
+
524
+ with mock .patch (
525
+ 'cherry_picker.cherry_picker.validate_sha' ,
526
+ return_value = True ,
527
+ ):
528
+ cherry_picker = CherryPicker ('origin' , 'xxx' , [])
529
+ assert get_state () == 'UNSET'
530
+
531
+ cherry_picker .cleanup_branch ('some_branch' )
532
+ assert get_state () == 'REMOVING_BACKPORT_BRANCH_FAILED'
0 commit comments