@@ -514,6 +514,32 @@ def test_branch_cascade_mixed_3digit_and_pre_ga_hotfix(self):
514514 tags = ['9.5.0' , '9.5.1' , '10.0.0.0' ]
515515 self .finalize_cascade (branches , tags , destination , fixver )
516516
517+ def test_branch_cascade_2digit_with_pre_ga_hotfix (self ):
518+ """2-digit dev branches coexisting with pre-GA hotfix.
519+
520+ Scenario: dev/9.5, hotfix/10.0.0 (pre-GA), dev/10.0, dev/10.
521+ Note: in the rename-based workflow hotfix/10.0.0 replaces dev/10.0;
522+ but both can coexist when the hotfix is branched off before GA.
523+ """
524+ destination = 'development/9.5'
525+ branches = OrderedDict ({
526+ 1 : {'name' : 'development/9.5' , 'ignore' : False },
527+ 2 : {'name' : 'hotfix/10.0.0' , 'ignore' : True },
528+ 3 : {'name' : 'development/10.0' , 'ignore' : False },
529+ 4 : {'name' : 'development/10' , 'ignore' : False },
530+ })
531+ # Pre-GA: no tags for 10.x yet
532+ # dev/10.0 targets 10.0.0, dev/10 targets 10.1.0 (latest_minor=0)
533+ tags = ['9.5.2' ]
534+ fixver = ['9.5.3' , '10.0.0' , '10.1.0' ]
535+ self .finalize_cascade (branches , tags , destination , fixver )
536+
537+ # Post-GA: tag 10.0.0.0 advances dev/10.0 to target 10.0.1
538+ # dev/10 still targets 10.1.0 (latest_minor=0 unchanged)
539+ tags = ['9.5.2' , '10.0.0.0' ]
540+ fixver = ['9.5.3' , '10.0.1' , '10.1.0' ]
541+ self .finalize_cascade (branches , tags , destination , fixver )
542+
517543 def test_branch_cascade_target_three_digit_dev (self ):
518544 """Test cascade targeting three-digit development branch"""
519545 destination = 'development/4.3.17'
0 commit comments