def test_version_bump_bad(): with pytest.raises( ValueError, match=".*does not end with a number to bump, " "please correct or use a custom version scheme", ): guess_next_version(tag_version="2.0.0-alpha.5-PMC")
def test_bump_dev_version_nonzero_raises(): with pytest.raises(ValueError) as excinfo: guess_next_version("1.0.dev1") assert str( excinfo.value) == ("choosing custom numbers for the `.devX` distance " "is not supported.\n " "The 1.0.dev1 can't be bumped\n" "Please drop the tag or create a new supported one")
def guess_next_dev(version): from setuptools_scm import git from setuptools_scm.version import guess_next_version erfa_version = git.parse(LIBERFADIR) if not erfa_version.exact: warn(f'liberfa/erfa not at a tagged release, but at {erfa_version}') erfa_tag = erfa_version.format_with("{tag}") version_string = str(version.tag) if version.exact: if not version_string.startswith(erfa_tag): warn( f'tag {version_string} does not start with liberfa/erfa tag {erfa_tag}' ) return version_string else: if erfa_tag > version_string: guessed = erfa_tag elif 'dev' in version_string or len(version_string.split('.')) > 3: return guess_next_version(version.tag) else: guessed = version_string.partition("+")[0] + '.1' return version.format_with("{guessed}.dev{distance}", guessed=guessed)
def _guess_next_dev(version, liberfadir=None): if liberfadir is None: liberfadir = pathlib.Path( __file__).parent.parent.parent / 'liberfa' / 'erfa' erfa_version = git.parse(liberfadir) if not erfa_version.exact: warn( f'liberfa/erfa not at a tagged release, but at {erfa_version}') erfa_tag = erfa_version.format_with("{tag}") version_string = str(version.tag) if version.exact: if not version_string.startswith(erfa_tag): warn(f'tag {version_string} does not start with ' f'liberfa/erfa tag {erfa_tag}') return version_string else: if erfa_tag > version_string: guessed = erfa_tag elif 'dev' in version_string or len(version_string.split('.')) > 3: return guess_next_version(version.tag) else: guessed = version_string.partition("+")[0] + '.1' return version.format_with("{guessed}.dev{distance}", guessed=guessed)
def test_next_tag(tag, expected): version = pkg_resources.parse_version(tag) assert guess_next_version(version) == expected
def test_bump_dev_version_zero(): guess_next_version("1.0.dev0")
def test_next_tag(tag, expected): version = pkg_resources.parse_version(tag) assert guess_next_version(version, 0) == expected