# 'is_blocked' not included
}


def custom_validator(obj, selector, ctx):
    if 'custom_variable' in ctx:
        return True
    else:
        return False, _('{selector} Custom Validator Error Str')


registration_form_validator = (
    ('email', gl.required, gl.format_email),
    ('pw', gl.required, gl.length_min(5)),
    ('name', gl.required, gl.type_(str)),
    ('birth_year', gl.required, gl.type_(int), gl.lt((2014 - 18))),
    ('is_email_validated', gl.required, gl.type_(bool)),
    ('is_blocked', gl.required, gl.type_(bool)),
    custom_validator
)


def test_registration_form():
    validator_func = partial(gl.validate, registration_form_validator, ctx={'custom_variable': 'exists', 'lazy': True})
    
    success_result = validator_func(valid_test_data)
    failure_result = validator_func(invalid_test_data)
    
    assert success_result.success is True
    assert success_result.errors == []
    assert failure_result.success is False
import gladiator as gl


#
# Comparison validators
#

comparison_validators_test_data = [
    {
        'validator': gl.lt(5),
        'valid': [1, 2, 3, 4],
        'invalid': [5, 6, 7, 8, 9, 10],
        'error': 'is not less than'
    },
    {
        'validator': gl.gt(5),
        'valid': [6, 7, 8, 9, 10],
        'invalid': [1, 2, 3, 4, 5],
        'error': 'is not greater than'
    },
    {
        'validator': gl.eq(5),
        'valid': [5],
        'invalid': [1, 2, 3, 4, 6, 7, 8, 9, 10],
        'error': 'is not equal to'
    },
    {
        'validator': gl.ne(5),
        'valid': [1, 2, 3, 4, 6, 7, 8, 9, 10],
        'invalid': [5],
        'error': 'is equal to'