66from commitizen .bump import generate_version
77
88simple_flow = [
9- (("0.1.0" , "PATCH" , None ), "0.1.1" ),
10- (("0.1.1" , "MINOR" , None ), "0.2.0" ),
11- (("0.2.0" , "MINOR" , None ), "0.3.0" ),
12- (("0.3.0" , "PATCH" , None ), "0.3.1" ),
13- (("0.3.0" , "PATCH" , "alpha" ), "0.3.1a0" ),
14- (("0.3.1a0" , None , "alpha" ), "0.3.1a1" ),
15- (("0.3.1a0" , None , None ), "0.3.1" ),
16- (("0.3.1" , "PATCH" , None ), "0.3.2" ),
17- (("0.4.2" , "MAJOR" , "alpha" ), "1.0.0a0" ),
18- (("1.0.0a0" , None , "alpha" ), "1.0.0a1" ),
19- (("1.0.0a1" , None , "alpha" ), "1.0.0a2" ),
20- (("1.0.0a1" , None , "beta" ), "1.0.0b0" ),
21- (("1.0.0b0" , None , "beta" ), "1.0.0b1" ),
22- (("1.0.0b1" , None , "rc" ), "1.0.0rc0" ),
23- (("1.0.0rc0" , None , "rc" ), "1.0.0rc1" ),
24- (("1.0.0rc0" , "PATCH" , None ), "1.0.0" ),
25- (("1.0.0" , "PATCH" , None ), "1.0.1" ),
26- (("1.0.1" , "PATCH" , None ), "1.0.2" ),
27- (("1.0.2" , "MINOR" , None ), "1.1.0" ),
28- (("1.1.0" , "MINOR" , None ), "1.2.0" ),
29- (("1.2.0" , "PATCH" , None ), "1.2.1" ),
30- (("1.2.1" , "MAJOR" , None ), "2.0.0" ),
9+ (("0.1.0" , "PATCH" , None , None ), "0.1.1" ),
10+ (("0.1.0" , "PATCH" , None , 1 ), "0.1.1.dev1" ),
11+ (("0.1.1" , "MINOR" , None , None ), "0.2.0" ),
12+ (("0.2.0" , "MINOR" , None , None ), "0.3.0" ),
13+ (("0.2.0" , "MINOR" , None , 1 ), "0.3.0.dev1" ),
14+ (("0.3.0" , "PATCH" , None , None ), "0.3.1" ),
15+ (("0.3.0" , "PATCH" , "alpha" , None ), "0.3.1a0" ),
16+ (("0.3.1a0" , None , "alpha" , None ), "0.3.1a1" ),
17+ (("0.3.1a0" , None , None , None ), "0.3.1" ),
18+ (("0.3.1" , "PATCH" , None , None ), "0.3.2" ),
19+ (("0.4.2" , "MAJOR" , "alpha" , None ), "1.0.0a0" ),
20+ (("1.0.0a0" , None , "alpha" , None ), "1.0.0a1" ),
21+ (("1.0.0a1" , None , "alpha" , None ), "1.0.0a2" ),
22+ (("1.0.0a1" , None , "alpha" , 1 ), "1.0.0a2.dev1" ),
23+ (("1.0.0a2.dev0" , None , "alpha" , 1 ), "1.0.0a3.dev1" ),
24+ (("1.0.0a2.dev0" , None , "alpha" , 0 ), "1.0.0a3.dev0" ),
25+ (("1.0.0a1" , None , "beta" , None ), "1.0.0b0" ),
26+ (("1.0.0b0" , None , "beta" , None ), "1.0.0b1" ),
27+ (("1.0.0b1" , None , "rc" , None ), "1.0.0rc0" ),
28+ (("1.0.0rc0" , None , "rc" , None ), "1.0.0rc1" ),
29+ (("1.0.0rc0" , None , "rc" , 1 ), "1.0.0rc1.dev1" ),
30+ (("1.0.0rc0" , "PATCH" , None , None ), "1.0.0" ),
31+ (("1.0.0a3.dev0" , None , "beta" , None ), "1.0.0b0" ),
32+ (("1.0.0" , "PATCH" , None , None ), "1.0.1" ),
33+ (("1.0.1" , "PATCH" , None , None ), "1.0.2" ),
34+ (("1.0.2" , "MINOR" , None , None ), "1.1.0" ),
35+ (("1.1.0" , "MINOR" , None , None ), "1.2.0" ),
36+ (("1.2.0" , "PATCH" , None , None ), "1.2.1" ),
37+ (("1.2.1" , "MAJOR" , None , None ), "2.0.0" ),
3138]
3239
3340local_versions = [
34- (("4.5.0+0.1.0" , "PATCH" , None ), "4.5.0+0.1.1" ),
35- (("4.5.0+0.1.1" , "MINOR" , None ), "4.5.0+0.2.0" ),
36- (("4.5.0+0.2.0" , "MAJOR" , None ), "4.5.0+1.0.0" ),
41+ (("4.5.0+0.1.0" , "PATCH" , None , None ), "4.5.0+0.1.1" ),
42+ (("4.5.0+0.1.1" , "MINOR" , None , None ), "4.5.0+0.2.0" ),
43+ (("4.5.0+0.2.0" , "MAJOR" , None , None ), "4.5.0+1.0.0" ),
3744]
3845
3946# this cases should be handled gracefully
4047unexpected_cases = [
41- (("0.1.1rc0" , None , "alpha" ), "0.1.1a0" ),
42- (("0.1.1b1" , None , "alpha" ), "0.1.1a0" ),
48+ (("0.1.1rc0" , None , "alpha" , None ), "0.1.1a0" ),
49+ (("0.1.1b1" , None , "alpha" , None ), "0.1.1a0" ),
4350]
4451
4552weird_cases = [
46- (("1.1" , "PATCH" , None ), "1.1.1" ),
47- (("1" , "MINOR" , None ), "1.1.0" ),
48- (("1" , "MAJOR" , None ), "2.0.0" ),
49- (("1a0" , None , "alpha" ), "1.0.0a1" ),
50- (("1" , None , "beta" ), "1.0.0b0" ),
51- (("1beta" , None , "beta" ), "1.0.0b1" ),
52- (("1.0.0alpha1" , None , "alpha" ), "1.0.0a2" ),
53- (("1" , None , "rc" ), "1.0.0rc0" ),
54- (("1.0.0rc1+e20d7b57f3eb" , "PATCH" , None ), "1.0.0" ),
53+ (("1.1" , "PATCH" , None , None ), "1.1.1" ),
54+ (("1" , "MINOR" , None , None ), "1.1.0" ),
55+ (("1" , "MAJOR" , None , None ), "2.0.0" ),
56+ (("1a0" , None , "alpha" , None ), "1.0.0a1" ),
57+ (("1" , None , "beta" , None ), "1.0.0b0" ),
58+ (("1beta" , None , "beta" , None ), "1.0.0b1" ),
59+ (("1.0.0alpha1" , None , "alpha" , None ), "1.0.0a2" ),
60+ (("1" , None , "rc" , None ), "1.0.0rc0" ),
61+ (("1.0.0rc1+e20d7b57f3eb" , "PATCH" , None , None ), "1.0.0" ),
5562]
5663
5764# test driven development
5865tdd_cases = [
59- (("0.1.1" , "PATCH" , None ), "0.1.2" ),
60- (("0.1.1" , "MINOR" , None ), "0.2.0" ),
61- (("2.1.1" , "MAJOR" , None ), "3.0.0" ),
62- (("0.9.0" , "PATCH" , "alpha" ), "0.9.1a0" ),
63- (("0.9.0" , "MINOR" , "alpha" ), "0.10.0a0" ),
64- (("0.9.0" , "MAJOR" , "alpha" ), "1.0.0a0" ),
65- (("1.0.0a2" , None , "beta" ), "1.0.0b0" ),
66- (("1.0.0beta1" , None , "rc" ), "1.0.0rc0" ),
67- (("1.0.0rc1" , None , "rc" ), "1.0.0rc2" ),
66+ (("0.1.1" , "PATCH" , None , None ), "0.1.2" ),
67+ (("0.1.1" , "MINOR" , None , None ), "0.2.0" ),
68+ (("2.1.1" , "MAJOR" , None , None ), "3.0.0" ),
69+ (("0.9.0" , "PATCH" , "alpha" , None ), "0.9.1a0" ),
70+ (("0.9.0" , "MINOR" , "alpha" , None ), "0.10.0a0" ),
71+ (("0.9.0" , "MAJOR" , "alpha" , None ), "1.0.0a0" ),
72+ (("1.0.0a2" , None , "beta" , None ), "1.0.0b0" ),
73+ (("1.0.0beta1" , None , "rc" , None ), "1.0.0rc0" ),
74+ (("1.0.0rc1" , None , "rc" , None ), "1.0.0rc2" ),
6875]
6976
7077
@@ -76,9 +83,16 @@ def test_generate_version(test_input, expected):
7683 current_version = test_input [0 ]
7784 increment = test_input [1 ]
7885 prerelease = test_input [2 ]
79- assert generate_version (
80- current_version , increment = increment , prerelease = prerelease
81- ) == Version (expected )
86+ devrelease = test_input [3 ]
87+ assert (
88+ generate_version (
89+ current_version ,
90+ increment = increment ,
91+ prerelease = prerelease ,
92+ devrelease = devrelease ,
93+ )
94+ == Version (expected )
95+ )
8296
8397
8498@pytest .mark .parametrize (
@@ -89,12 +103,14 @@ def test_generate_version_local(test_input, expected):
89103 current_version = test_input [0 ]
90104 increment = test_input [1 ]
91105 prerelease = test_input [2 ]
106+ devrelease = test_input [3 ]
92107 is_local_version = True
93108 assert (
94109 generate_version (
95110 current_version ,
96111 increment = increment ,
97112 prerelease = prerelease ,
113+ devrelease = devrelease ,
98114 is_local_version = is_local_version ,
99115 )
100116 == Version (expected )
0 commit comments