Exemplo n.º 1
0
def test_and__str__two_items__first_is_operator():
    obj_1 = versions.And(versions.GE(1, 2), versions.LT(2, 0))
    obj_2 = versions.LT(3, 4)
    obj = versions.And(obj_1, obj_2)

    assert str(
        obj) == "(at least v1.2.x and prior to v2.0.x) and prior to v3.4.x"
Exemplo n.º 2
0
def test_or__str__two_items__second_is_operator():
    obj_1 = versions.GE(1, 2)
    obj_2 = versions.And(versions.GE(2, 0), versions.LT(3, 4))
    obj = versions.Or(obj_1, obj_2)

    assert str(
        obj) == "at least v1.2.x or (at least v2.0.x and prior to v3.4.x)"
Exemplo n.º 3
0
def test_check__can_pickle():
    def _do_test_can_pickle(obj):
        pickle.dumps(obj)

    yield _do_test_can_pickle, versions.EQ(1, 2, 3)
    yield _do_test_can_pickle, versions.GE(1, 2, 3)
    yield _do_test_can_pickle, versions.LT(1, 2, 3)
    yield _do_test_can_pickle, versions.Any()
    yield _do_test_can_pickle, versions.And(versions.EQ(1, 2, 3))
    yield _do_test_can_pickle, versions.Or(versions.GE(1, 2, 3))
Exemplo n.º 4
0
def test_or__check_version__neither_true():
    obj_1 = versions.And(versions.GE(1, 2), versions.LT(2, 0))
    obj_2 = versions.And(versions.GE(2, 3), versions.LT(3, 0))
    obj = versions.Or(obj_1, obj_2)
    assert not obj((2, 2))
Exemplo n.º 5
0
def test_or__check_version__second_true():
    obj_1 = versions.And(versions.GE(1, 2), versions.LT(2, 0))
    obj_2 = versions.And(versions.GE(2, 3), versions.LT(3, 0))
    obj = versions.Or(obj_1, obj_2)
    assert obj((2, 3))
Exemplo n.º 6
0
def test_and__check_version__insufficient_number_of_values(obj_1, obj_2):
    obj = versions.And(obj_1, obj_2)
    with pytest.raises(ValueError):
        obj((1, 3))
Exemplo n.º 7
0
def test_and__check_version__truncated(obj_1, obj_2):
    obj = versions.And(obj_1, obj_2)
    assert obj((1, 3, 3))
Exemplo n.º 8
0
def test_and__check_version__first_true():
    obj_1 = versions.And(versions.GE(1, 2), versions.LT(2, 0))
    obj_2 = versions.And(versions.GE(2, 3), versions.LT(3, 0))
    obj = versions.And(obj_1, obj_2)
    assert not obj((1, 3))
Exemplo n.º 9
0
def test_and__check_version__both_true():
    obj_1 = versions.GE(1, 2)
    obj_2 = versions.LT(2, 0)
    obj = versions.And(obj_1, obj_2)
    assert obj((1, 3))
Exemplo n.º 10
0
def test_and__str__two_items():
    obj_ge = versions.GE(1, 2)
    obj_lt = versions.LT(3, 4)
    obj = versions.And(obj_ge, obj_lt)

    assert str(obj) == "at least v1.2.x and prior to v3.4.x"
Exemplo n.º 11
0
def test_and__str__single_item():
    obj = versions.And(versions.GE(1))
    assert str(obj) == "at least v1.x"
Exemplo n.º 12
0
def test_and__init__non_check_value():
    with pytest.raises(ValueError):
        versions.And(versions.LT(2), None)
Exemplo n.º 13
0
        obj()
        assert False  # pragma: no coverage
    except versions.VersionRequirementError as error:
        assert str(error) == expected


###############################################################################
###############################################################################
# Pickling of checks

_CAN_PICKLE_VALUES = (
    versions.EQ(1, 2, 3),
    versions.GE(1, 2, 3),
    versions.LT(1, 2, 3),
    versions.Any(),
    versions.And(versions.EQ(1, 2, 3)),
    versions.Or(versions.GE(1, 2, 3)),
)


@pytest.mark.parametrize("obj", _CAN_PICKLE_VALUES)
def test_check__can_pickle(obj):
    pickle.dumps(obj)


###############################################################################
###############################################################################
# Requirement


def test_requirement__obj_is_cached_for_same_values():
Exemplo n.º 14
0
 def _do_and_check_num_values(obj_1, obj_2):
     obj = versions.And(obj_1, obj_2)
     assert_raises(ValueError, obj, (1, 3))
Exemplo n.º 15
0
 def _do_and_check_truncated(obj_1, obj_2):
     obj = versions.And(obj_1, obj_2)
     assert obj((1, 3, 3))
Exemplo n.º 16
0
def test_and__str__single_item():
    obj = versions.And(versions.GE(1))
    assert_equal(str(obj), "at least v1.x")