Exemplo n.º 1
0
def test_validators_error():
    def error(value):
        raise ValidationError('Uh oh!')

    field = Field(validators=[error])

    with pytest.raises(ValidationError):
        field.run_validation(123)
Exemplo n.º 2
0
def test_required():
    field = Field(required=True)

    assert field.run_validation(123) == 123

    with pytest.raises(ValidationError):
        field.run_validation(None)

    with pytest.raises(ValidationError):
        field.run_validation(empty)
Exemplo n.º 3
0
def test_default_callable():
    def f():
        f.counter += 1
        return f.counter

    f.counter = 0

    field = Field(default=f)

    assert field.run_validation('bar') == 'bar'
    assert field.run_validation(None) == 1
    assert field.run_validation(empty) == 2
    assert field.run_validation(empty) == 3
Exemplo n.º 4
0
def test_validators_skip():
    def skip(value):
        raise SkipField

    field = Field(validators=[lambda x: x + 1, skip])

    assert field.run_validation(1) == 2
Exemplo n.º 5
0
def test_set_context():
    class f():
        def __init__(self):
            self.parent = None

        def __call__(self, value):
            return self.parent.foo

        def set_context(self, parent):
            self.parent = parent

    field = Field(validators=[f()])
    field.foo = 'bar'

    assert field.run_validation(123) == 'bar'
Exemplo n.º 6
0
def test_validators():
    field = Field(validators=[lambda x: 2 * x, lambda x: x + 1])
    assert field.run_validation(2) == 5
Exemplo n.º 7
0
def test_optional():
    field = Field(required=False)

    assert field.run_validation(123) == 123
    assert field.run_validation(None) is None
    assert field.run_validation(empty) is None
Exemplo n.º 8
0
def test_default():
    field = Field(default='foo')
    assert field.run_validation('bar') == 'bar'
    assert field.run_validation(None) == 'foo'
    assert field.run_validation(empty) == 'foo'