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)
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)
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)
def test_invalid_operators(): with pytest.raises(ValueError): Constraint('invalid', '1.2.3')
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)
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)
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')),