@@ -24,6 +24,13 @@ def test_parsing_valid_versions(self):
2424 format = versions .DateVersionFormat .quarter ,
2525 ),
2626 ],
27+ [
28+ "FY2020" ,
29+ versions .Date (
30+ date = date (2020 , 1 , 1 ),
31+ format = versions .DateVersionFormat .fiscal_year ,
32+ ),
33+ ],
2734 [
2835 "26prelim" ,
2936 versions .CapitalBudget (
@@ -62,6 +69,8 @@ def test_parsing_invalid_version(self):
6269 versions .parse ("23v" )
6370 with self .assertRaises (Exception ):
6471 versions .parse ("2v12" )
72+ with self .assertRaises (Exception ):
73+ versions .parse ("FY26" )
6574 with self .assertRaises (Exception ):
6675 versions .parse ("20231212" )
6776 with self .assertRaises (Exception ):
@@ -158,6 +167,7 @@ def test_sort_invalid_versions(self):
158167 def test_is_newer_valid_versions (self ):
159168 for version_1 , version_2 , bool_expected in [
160169 ["23v2" , "22v3.4" , True ],
170+ ["FY2019" , "FY2020" , False ],
161171 ["23Q1" , "23Q2" , False ],
162172 ["23v2.0.1" , "23v2" , True ],
163173 ["23Q1.1" , "23Q1" , True ],
@@ -182,6 +192,7 @@ def test_bumping_versions(self):
182192 ["major" , None , "23v2.1" , "23v3" ],
183193 ["minor" , None , "23v2" , "23v2.1" ],
184194 ["minor" , None , "23v2.1" , "23v2.2" ],
195+ [None , 1 , "FY2020" , "FY2021" ],
185196 [None , 1 , "23Q1" , "23Q2" ],
186197 [None , 2 , "23Q4" , "24Q2" ],
187198 [None , 7 , "23Q2" , "25Q1" ],
@@ -206,6 +217,27 @@ def test_bumping_versions(self):
206217 ]:
207218 self .assertEqual (v_expected , versions .bump (v , bumped_part , bump_by ).label )
208219
220+ def test_bumping_versions_errors (self ):
221+ with self .assertRaises (NotImplementedError ):
222+ versions .bump ("2023-01-01" )
223+
224+ with self .assertRaises (ValueError ):
225+ versions .bump (versions .Date (date (2023 , 1 , 1 ), format = "unsupported" ))
226+
227+ with self .assertRaises (ValueError ):
228+ versions .bump (
229+ versions .Date (
230+ date (2023 , 1 , 1 ), format = versions .DateVersionFormat .fiscal_year
231+ ),
232+ bump_type = versions .VersionSubType .major ,
233+ )
234+
235+ class UnsupportedVersion :
236+ pass
237+
238+ with self .assertRaises (ValueError ):
239+ versions .bump (UnsupportedVersion ())
240+
209241 def test_group_versions_by_base (self ):
210242 for version , versions_list , expected_output in [
211243 [
0 commit comments