66 bump_minor ,
77 bump_patch ,
88 bump_prerelease ,
9+ compare ,
910 parse_version_info ,
1011)
1112
@@ -32,81 +33,120 @@ def test_should_versioninfo_bump_minor_and_patch():
3233 v = parse_version_info ("3.4.5" )
3334 expected = parse_version_info ("3.5.1" )
3435 assert v .bump_minor ().bump_patch () == expected
36+ assert v .compare (expected ) == - 1
3537
3638
3739def test_should_versioninfo_bump_patch_and_prerelease ():
3840 v = parse_version_info ("3.4.5-rc.1" )
3941 expected = parse_version_info ("3.4.6-rc.1" )
4042 assert v .bump_patch ().bump_prerelease () == expected
43+ assert v .compare (expected ) == - 1
4144
4245
4346def test_should_versioninfo_bump_patch_and_prerelease_with_token ():
4447 v = parse_version_info ("3.4.5-dev.1" )
4548 expected = parse_version_info ("3.4.6-dev.1" )
4649 assert v .bump_patch ().bump_prerelease ("dev" ) == expected
50+ assert v .compare (expected ) == - 1
4751
4852
4953def test_should_versioninfo_bump_prerelease_and_build ():
5054 v = parse_version_info ("3.4.5-rc.1+build.1" )
5155 expected = parse_version_info ("3.4.5-rc.2+build.2" )
5256 assert v .bump_prerelease ().bump_build () == expected
57+ assert v .compare (expected ) == - 1
5358
5459
5560def test_should_versioninfo_bump_prerelease_and_build_with_token ():
5661 v = parse_version_info ("3.4.5-rc.1+b.1" )
5762 expected = parse_version_info ("3.4.5-rc.2+b.2" )
5863 assert v .bump_prerelease ().bump_build ("b" ) == expected
64+ assert v .compare (expected ) == - 1
5965
6066
6167def test_should_versioninfo_bump_multiple ():
6268 v = parse_version_info ("3.4.5-rc.1+build.1" )
6369 expected = parse_version_info ("3.4.5-rc.2+build.2" )
6470 assert v .bump_prerelease ().bump_build ().bump_build () == expected
71+ assert v .compare (expected ) == - 1
6572 expected = parse_version_info ("3.4.5-rc.3" )
6673 assert v .bump_prerelease ().bump_build ().bump_build ().bump_prerelease () == expected
74+ assert v .compare (expected ) == - 1
6775
6876
6977def test_should_versioninfo_bump_prerelease_with_empty_str ():
7078 v = parse_version_info ("3.4.5" )
7179 expected = parse_version_info ("3.4.5-1" )
7280 assert v .bump_prerelease ("" ) == expected
81+ assert v .compare (expected ) == 1
7382
7483
7584def test_should_versioninfo_bump_prerelease_with_none ():
7685 v = parse_version_info ("3.4.5" )
7786 expected = parse_version_info ("3.4.5-rc.1" )
7887 assert v .bump_prerelease (None ) == expected
88+ assert v .compare (expected ) == 1
89+
90+
91+ def test_should_versioninfo_bump_prerelease_nonnumeric ():
92+ v = parse_version_info ("3.4.5-rc1" )
93+ expected = parse_version_info ("3.4.5-rc1.0" )
94+ assert v .bump_prerelease (None ) == expected
95+ assert v .compare (expected ) == - 1
96+
97+
98+ def test_should_versioninfo_bump_prerelease_nonnumeric_nine ():
99+ v = parse_version_info ("3.4.5-rc9" )
100+ expected = parse_version_info ("3.4.5-rc9.0" )
101+ assert v .bump_prerelease (None ) == expected
102+ assert v .compare (expected ) == - 1
103+
104+
105+ def test_should_versioninfo_bump_prerelease_bump_patch ():
106+ v = parse_version_info ("3.4.5" )
107+ expected = parse_version_info ("3.4.6-rc.1" )
108+ assert v .bump_prerelease (bump_when_empty = True ) == expected
109+ assert v .compare (expected ) == - 1
110+
111+
112+ def test_should_versioninfo_bump_patch_and_prerelease_bump_patch ():
113+ v = parse_version_info ("3.4.5" )
114+ expected = parse_version_info ("3.4.7-rc.1" )
115+ assert v .bump_patch ().bump_prerelease (bump_when_empty = True ) == expected
116+ assert v .compare (expected ) == - 1
79117
80118
81119def test_should_versioninfo_bump_build_with_empty_str ():
82120 v = parse_version_info ("3.4.5" )
83121 expected = parse_version_info ("3.4.5+1" )
84122 assert v .bump_build ("" ) == expected
123+ assert v .compare (expected ) == 0
85124
86125
87126def test_should_versioninfo_bump_build_with_none ():
88127 v = parse_version_info ("3.4.5" )
89128 expected = parse_version_info ("3.4.5+build.1" )
90129 assert v .bump_build (None ) == expected
130+ assert v .compare (expected ) == 0
91131
92132
93133def test_should_ignore_extensions_for_bump ():
94134 assert bump_patch ("3.4.5-rc1+build4" ) == "3.4.6"
95135
96136
97137@pytest .mark .parametrize (
98- "version,token,expected" ,
138+ "version,token,expected,expected_compare " ,
99139 [
100- ("3.4.5-rc.9" , None , "3.4.5-rc.10" ),
101- ("3.4.5" , None , "3.4.5-rc.1" ),
102- ("3.4.5" , "dev" , "3.4.5-dev.1" ),
103- ("3.4.5" , "" , "3.4.5-rc.1" ),
140+ ("3.4.5-rc.9" , None , "3.4.5-rc.10" , - 1 ),
141+ ("3.4.5" , None , "3.4.5-rc.1" , 1 ),
142+ ("3.4.5" , "dev" , "3.4.5-dev.1" , 1 ),
143+ ("3.4.5" , "" , "3.4.5-rc.1" , 1 ),
104144 ],
105145)
106- def test_should_bump_prerelease (version , token , expected ):
146+ def test_should_bump_prerelease (version , token , expected , expected_compare ):
107147 token = "rc" if not token else token
108148 assert bump_prerelease (version , token ) == expected
109-
149+ assert compare ( version , expected ) == expected_compare
110150
111151def test_should_ignore_build_on_prerelease_bump ():
112152 assert bump_prerelease ("3.4.5-rc.1+build.4" ) == "3.4.5-rc.2"
@@ -123,3 +163,4 @@ def test_should_ignore_build_on_prerelease_bump():
123163)
124164def test_should_bump_build (version , expected ):
125165 assert bump_build (version ) == expected
166+ assert compare (version , expected ) == 0
0 commit comments