def test_is_between(self):
        val = va.is_between(min_=0, max_=10)
        model = MyModel()
        model.prop = 2

        valid, error = val(model, 'prop')

        assert valid
        assert error is None
    def test_type_mismatch(self):
        val = va.is_between(min_=0, max_=10)
        model = MyModel()
        model.prop = {'123'}

        valid, error = val(model, 'prop')

        assert not valid
        assert error == (msg.INVALID_VALUE,)
    def test_one_sided_interval(self):
        val = va.is_between(min_=0)
        val2 = va.is_between(max_=10)
        model = MyModel()
        model.prop = 20
        model.prop2 = -1

        valid, error = val(model, 'prop')
        valid2, error2 = val(model, 'prop2')

        assert valid
        assert error is None
        assert not valid2
        assert error2 == (msg.GREATER_OR_EQUAL_THAN, 0)

        valid, error = val2(model, 'prop')
        valid2, error2 = val2(model, 'prop2')

        assert not valid
        assert error == (msg.LESS_OR_EQUAL_THAN, 10)
        assert valid2
        assert error2 is None
    def test_no_interval_set(self):
        val = va.is_between()
        model = MyModel()
        model.prop = 20
        model.prop2 = -1

        valid, error = val(model, 'prop')
        valid2, error2 = val(model, 'prop2')

        assert valid
        assert error is None
        assert valid2
        assert error2 is None