@@ -210,5 +210,62 @@ def test_get_latest_version_only_rc_tags(self, mock_get_tags):
210210 releaser .get_latest_version ()
211211
212212
213+ class DetermineNextVersionTest (unittest .TestCase ):
214+ def setUp (self ):
215+ self .tmpdir = pathlib .Path (tempfile .mkdtemp ())
216+ self .original_cwd = os .getcwd ()
217+ self .addCleanup (shutil .rmtree , self .tmpdir )
218+
219+ os .chdir (self .tmpdir )
220+ # NOTE: On windows, this must be done before files are deleted.
221+ self .addCleanup (os .chdir , self .original_cwd )
222+
223+ self .mock_get_latest_version = patch (
224+ "tools.private.release.release.get_latest_version"
225+ ).start ()
226+ self .addCleanup (patch .stopall )
227+
228+ def test_no_markers (self ):
229+ (self .tmpdir / "mock_file.bzl" ).write_text ("no markers here" )
230+ self .mock_get_latest_version .return_value = "1.2.3"
231+
232+ next_version = releaser .determine_next_version ()
233+
234+ self .assertEqual (next_version , "1.2.4" )
235+
236+ def test_only_patch (self ):
237+ (self .tmpdir / "mock_file.bzl" ).write_text (
238+ ":::{versionchanged} VERSION_NEXT_PATCH"
239+ )
240+ self .mock_get_latest_version .return_value = "1.2.3"
241+
242+ next_version = releaser .determine_next_version ()
243+
244+ self .assertEqual (next_version , "1.2.4" )
245+
246+ def test_only_feature (self ):
247+ (self .tmpdir / "mock_file.bzl" ).write_text (
248+ ":::{versionadded} VERSION_NEXT_FEATURE"
249+ )
250+ self .mock_get_latest_version .return_value = "1.2.3"
251+
252+ next_version = releaser .determine_next_version ()
253+
254+ self .assertEqual (next_version , "1.3.0" )
255+
256+ def test_both_markers (self ):
257+ (self .tmpdir / "mock_file_patch.bzl" ).write_text (
258+ ":::{versionchanged} VERSION_NEXT_PATCH"
259+ )
260+ (self .tmpdir / "mock_file_feature.bzl" ).write_text (
261+ ":::{versionadded} VERSION_NEXT_FEATURE"
262+ )
263+ self .mock_get_latest_version .return_value = "1.2.3"
264+
265+ next_version = releaser .determine_next_version ()
266+
267+ self .assertEqual (next_version , "1.3.0" )
268+
269+
213270if __name__ == "__main__" :
214271 unittest .main ()
0 commit comments