Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
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")
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
def test_next_tag(tag, expected):
    version = pkg_resources.parse_version(tag)
    assert guess_next_version(version) == expected
Ejemplo n.º 6
0
def test_bump_dev_version_zero():
    guess_next_version("1.0.dev0")
Ejemplo n.º 7
0
def test_next_tag(tag, expected):
    version = pkg_resources.parse_version(tag)
    assert guess_next_version(version, 0) == expected