Esempio n. 1
0
def test_parse_constraints_multi2(parser, input):
    first = Constraint('>', '2.0.0.0')
    second = Constraint('<', '2.0.5.0')
    third = Constraint('>', '2.0.6.0')
    multi1 = MultiConstraint((first, second))
    multi2 = MultiConstraint((multi1, third), False)

    assert str(parser.parse_constraints(input)) == str(multi2)
Esempio n. 2
0
def test_multi_version_match_succeeds():
    require_start = Constraint('>', '1.0')
    require_end = Constraint('<', '1.2')
    provider = Constraint('==', '1.1')

    multi = MultiConstraint((require_start, require_end))

    assert multi.matches(provider)
Esempio n. 3
0
def test_multi_version_provided_match_succeeds():
    require_start = Constraint('>', '1.0')
    require_end = Constraint('<', '1.2')
    provide_start = Constraint('>=', '1.1')
    provide_end = Constraint('<', '2.0')

    multi_require = MultiConstraint((require_start, require_end))
    multi_provide = MultiConstraint((provide_start, provide_end))

    assert multi_require.matches(multi_provide)
Esempio n. 4
0
def test_invalid_operators():
    with pytest.raises(ValueError):
        Constraint('invalid', '1.2.3')
Esempio n. 5
0
def test_version_match_fails(require_op, require_version, provide_op,
                             provide_version):
    require = Constraint(require_op, require_version)
    provide = Constraint(provide_op, provide_version)

    assert not require.matches(provide)
Esempio n. 6
0
def test_parse_constraints_multi(parser, input):
    first = Constraint('>', '2.0.0.0')
    second = Constraint('<=', '3.0.0.0')
    multi = MultiConstraint((first, second))

    assert str(parser.parse_constraints(input)) == str(multi)
Esempio n. 7
0
from poetry.semver.constraints.constraint import Constraint
from poetry.semver.constraints.empty_constraint import EmptyConstraint
from poetry.semver.constraints.multi_constraint import MultiConstraint


@pytest.fixture
def parser():
    return VersionParser()


@pytest.mark.parametrize('input,constraint',
                         [('*', EmptyConstraint()), ('*.*', EmptyConstraint()),
                          ('v*.*', EmptyConstraint()),
                          ('*.x.*', EmptyConstraint()),
                          ('x.X.x.*', EmptyConstraint()),
                          ('!=1.0.0', Constraint('!=', '1.0.0.0')),
                          ('>1.0.0', Constraint('>', '1.0.0.0')),
                          ('<1.2.3.4', Constraint('<', '1.2.3.4')),
                          ('<=1.2.3', Constraint('<=', '1.2.3.0')),
                          ('>=1.2.3', Constraint('>=', '1.2.3.0')),
                          ('=1.2.3', Constraint('=', '1.2.3.0')),
                          ('1.2.3', Constraint('=', '1.2.3.0')),
                          ('=1.0', Constraint('=', '1.0.0.0')),
                          ('1.2.3b5', Constraint('=', '1.2.3.0-beta.5')),
                          ('>= 1.2.3', Constraint('>=', '1.2.3.0'))])
def test_parse_constraints_simple(parser, input, constraint):
    assert str(parser.parse_constraints(input)) == str(constraint)


@pytest.mark.parametrize('input,min,max', [
    ('v2.*', Constraint('>=', '2.0.0.0'), Constraint('<', '3.0.0.0')),