diff --git a/.gitignore b/.gitignore index c899f50..e910e29 100644 --- a/.gitignore +++ b/.gitignore @@ -216,4 +216,7 @@ fabric.properties .idea/httpRequests # Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser \ No newline at end of file +.idea/caches/build_file_checksums.ser + +# Visual Studio Code +.vscode diff --git a/src/bumpver/v2version.py b/src/bumpver/v2version.py index 39e0e1e..8cd1ec7 100644 --- a/src/bumpver/v2version.py +++ b/src/bumpver/v2version.py @@ -754,6 +754,11 @@ def incr( else: cur_vinfo = old_vinfo._replace(**cur_cinfo._asdict()) + has_tag_part = cur_vinfo.tag != "final" + if tag_num and not tag and not has_tag_part: + logger.error("Invalid arguments, non-final --tag= is needed to use --tag-num.") + return None + cur_vinfo = _incr_numeric( raw_pattern, old_vinfo, diff --git a/test/test_version.py b/test/test_version.py index 191a534..40b3da1 100644 --- a/test/test_version.py +++ b/test/test_version.py @@ -73,6 +73,18 @@ def test_bump_random(monkeypatch): cur_version = new_version +def test_bump_tag_num(): + raw_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]" + cur_version = "0.1.1b0" + assert v2version.incr(cur_version, raw_pattern, tag_num=True) == "0.1.1b1" + + +def test_bump_tag_num_without_tag(): + raw_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]" + cur_version = "0.1.1" + assert v2version.incr(cur_version, raw_pattern, tag_num=True) is None + + def test_parse_version_info(): version_str = "v201712.0001-alpha" version_info = v1version.parse_version_info(version_str)