예제 #1
0
def test_validation_value(kwargs):
    if 'release' not in kwargs:
        kwargs['release'] = 1

    with pytest.raises(ValueError):
        # print so we can see output when test fails
        print(Version(**kwargs))
예제 #2
0
def test_attributes(kwargs, values, version):
    # save us repeating ourselves in test data above
    kwargs.setdefault('release', 1)

    v = Version(**kwargs)
    assert str(v) == version
    for key, value in values.items():
        assert getattr(v, key) == value
예제 #3
0
def test_bump_by_value_error():
    v = Version(release=1)

    with pytest.raises(ValueError, match='negative'):
        v.bump_epoch(by=-1)

    with pytest.raises(ValueError, match='negative'):
        v.bump_dev(by=-1)

    with pytest.raises(ValueError, match='negative'):
        v.bump_pre(by=-1)

    with pytest.raises(ValueError, match='negative'):
        v.bump_post(by=-1)
예제 #4
0
def test_bump_by_error(by):
    v = Version(release=1)

    with pytest.raises(TypeError):
        v.bump_epoch(by=by)

    with pytest.raises(TypeError):
        v.bump_dev(by=by)

    with pytest.raises(TypeError):
        v.bump_pre('a', by=by)

    with pytest.raises(TypeError):
        v.bump_post(by=by)
예제 #5
0
파일: __init__.py 프로젝트: 5j9/r3l3453
def check_pyproject_toml():
    # https://packaging.python.org/tutorials/packaging-projects/
    try:
        with open('pyproject.toml', encoding='utf8') as f:
            pyproject_toml = f.read()
    except FileNotFoundError:
        with open('pyproject.toml', 'w', encoding='utf8') as f:
            f.write(PYPROJECT_TOML)
        raise FileNotFoundError('pyproject.toml was not found; sample created')
    m = search(r'setuptools>=([\d.]+)', pyproject_toml)
    if not m or (Version.parse(m[1]) < Version((46, 4, 0))):
        raise RuntimeError(
            'Please require `setuptools>=46.4.0` in pyproject.toml\n'
            "That's the minimum version that supports `attr` in setup.cfg.")
    if 'build-backend = "setuptools.build_meta"' not in pyproject_toml:
        raise RuntimeError(
            '`build-backend = "setuptools.build_meta"` not in pyproject.toml')
예제 #6
0
파일: __init__.py 프로젝트: 5j9/r3l3453
def get_release_version(
    current_version: Version, release_type: ReleaseType = None
) -> Version:
    """Return the next version according to git log."""
    if release_type is DEV:
        if current_version.is_devrelease:
            return current_version.bump_dev()
        return current_version.bump_release(index=2).bump_dev()
    if release_type is None:
        release_type = get_release_type()
        if SIMULATE is True:
            print(f'* {release_type}')
    base_version = current_version.base_version()  # removes devN
    if release_type is PATCH:
        return base_version
    if release_type is MINOR or current_version < Version(1):
        # do not change an early development version to a major release
        # that type of change should be more explicit (edit versions).
        return base_version.bump_release(index=1)
    return base_version.bump_release(index=0)
예제 #7
0
def test_init(vargs, s):
    args, kwargs = vargs
    assert str(Version(*args, **kwargs)) == s
예제 #8
0
def test_ambiguous():
    with pytest.raises(ValueError, match='post_tag.*pre'):
        Version(release=1, pre_tag='rc', post=2, post_tag=None)
예제 #9
0
def test_release_tuple():
    v = Version(release=[1, 2])
    assert isinstance(v.release, tuple)
예제 #10
0
def test_bump_release_error(index, exc):
    with pytest.raises(exc):
        print(Version(release=1).bump_release(index))
예제 #11
0
def test_invalid(kwargs):
    """Test bad keyword combinations."""
    with pytest.raises(ValueError):
        Version(release=1, **kwargs)
예제 #12
0
def test_release_tuple(arg, expected):
    v = Version(release=arg)
    assert isinstance(v.release, tuple)
    assert v.release == expected
예제 #13
0
def test_validation_value(kwargs):
    kwargs.setdefault('release', 1)

    with pytest.raises(ValueError):
        # print so we can see output when test fails
        print(Version(**kwargs))
예제 #14
0
def test_release_validation(release, exc, match):
    with pytest.raises(exc, match=match):
        Version(release=release)