Esempio n. 1
0
def test_validate_date(patch_schema, input, output):
    patch_schema({'debut': {'type': 'string', 'format': 'date'}})
    data = {'debut': input}
    if not output:
        with pytest.raises(DataError):
            validate_field('debut', data)
    else:
        assert validate_field('debut', data) == output
Esempio n. 2
0
def test_validate_bad_bool(patch_schema):
    patch_schema(
        {'beneficiaire.droit_prive': {
            'type': 'boolean',
            'required': True
        }})
    data = {'beneficiaire.droit_prive': 'yep'}
    with pytest.raises(DataError) as err:
        validate_field('beneficiaire.droit_prive', data)
    assert err.value.key == 'beneficiaire.droit_prive'
    assert err.value.error == "`yep` n'est pas de type booléen"
Esempio n. 3
0
def test_format_money(patch_schema, input, expected):
    patch_schema(
        {'remuneration': {
            'type': 'string',
            'format': 'money',
            'default': 0
        }})
    data = {'remuneration': input}
    if expected is False:
        with pytest.raises(DataError):
            validate_field('remuneration', data)
    else:
        assert validate_field('remuneration', data) == expected
Esempio n. 4
0
def test_validate_pattern(patch_schema, input, valid):
    patch_schema({
        'beneficiaire.insee': {
            'type': 'string',
            'pattern': re.compile('(2[AB]|[0-9]{2})[0-9]{3}')
        }
    })
    data = {'beneficiaire.insee': input}
    if not valid:
        with pytest.raises(DataError):
            validate_field('beneficiaire.insee', data)
    else:
        validate_field('beneficiaire.insee', data)
Esempio n. 5
0
def test_validate_integer(patch_schema):
    patch_schema({
        'beneficiaire.age': {
            'type': 'integer'
        },
        'beneficiaire.solde_cpf': {
            'type': 'integer'
        }
    })
    data = {
        'beneficiaire.age': '22',
        'beneficiaire.solde_cpf': '89.0',
    }
    assert validate_field('beneficiaire.age', data) == 22
    assert validate_field('beneficiaire.solde_cpf', data) == 89
Esempio n. 6
0
def test_validate_bad_enum(patch_schema):
    patch_schema({
        'beneficiaire.contrat': {
            'type': 'string',
            'enum': {
                'cdd': 'CDD',
                'cdi': 'CDI'
            }
        }
    })
    data = {'beneficiaire.contrat': 'cdg'}
    with pytest.raises(DataError) as err:
        validate_field('beneficiaire.contrat', data)
    assert err.value.key == 'beneficiaire.contrat'
    assert err.value.error == "`cdg` ne fait pas partie de ['cdd', 'cdi']"
Esempio n. 7
0
def test_validate_missing_without_default(patch_schema):
    patch_schema({
        'beneficiaire.age': {
            'type': 'integer'
        },
        'beneficiaire.droit_prive': {
            'type': 'boolean'
        },
    })
    with pytest.raises(DataError) as err:
        validate_field('beneficiaire.age', {'beneficiaire.birth': 22})
    assert err.value.key == 'beneficiaire.age'
    assert err.value.error == 'Ce champ est obligatoire'
    with pytest.raises(DataError) as err:
        validate_field('beneficiaire.droit_prive', {'beneficiaire.birth': 22})
    assert err.value.key == 'beneficiaire.droit_prive'
    assert err.value.error == 'Ce champ est obligatoire'
Esempio n. 8
0
def test_should_resolve_first_available_alias_in_list(patch_schema):
    patch_schema(
        {'remuneration': {
            'type': 'integer',
            'alias': ['salaire', 'revenu']
        }})
    data = {'salaire': 1000}
    assert validate_field('remuneration', data) == 1000
Esempio n. 9
0
def test_validate_bad_integer(patch_schema):
    patch_schema({
        'beneficiaire.age': {
            'type': 'integer'
        },
        'beneficiaire.solde_cpf': {
            'type': 'integer'
        },
    })
    data = {'beneficiaire.age': 'foo', 'beneficiaire.solde_cpf': 'blah'}
    with pytest.raises(DataError) as err:
        validate_field('beneficiaire.age', data)
    assert err.value.key == 'beneficiaire.age'
    assert err.value.error == "`foo` n'est pas un nombre"
    with pytest.raises(DataError) as err:
        validate_field('beneficiaire.solde_cpf', data)
    assert err.value.key == 'beneficiaire.solde_cpf'
    assert err.value.error == "`blah` n'est pas un nombre"
Esempio n. 10
0
def test_validate_bool(input, expected, patch_schema):
    patch_schema(
        {'beneficiaire.droit_prive': {
            'type': 'boolean',
            'required': True
        }})
    data = {
        'beneficiaire.droit_prive': input,
    }
    assert validate_field('beneficiaire.droit_prive', data) == expected
Esempio n. 11
0
def test_should_fail_if_alias_is_not_present(patch_schema):
    patch_schema({
        'remuneration': {
            'type': 'integer',
            'alias': ['salaire'],
            'default': 0
        }
    })
    data = {}
    assert validate_field('remuneration', data) == 0
Esempio n. 12
0
def test_validate_enum(patch_schema):
    patch_schema({
        'beneficiaire.contrat': {
            'type': 'string',
            'enum': {
                'cdd': 'CDD',
                'cdi': 'CDI'
            }
        }
    })
    data = {'beneficiaire.contrat': 'cdd'}
    assert validate_field('beneficiaire.contrat', data) == 'cdd'
Esempio n. 13
0
def test_should_not_resolve_alias_if_original_key_is_set(patch_schema):
    patch_schema({'remuneration': {'type': 'integer', 'alias': ['salaire']}})
    data = {'salaire': 1000, 'remuneration': 1100}
    assert validate_field('remuneration', data) == 1100
Esempio n. 14
0
def test_should_resolve_alias_if_value_is_none(patch_schema):
    patch_schema({'remuneration': {'type': 'integer', 'alias': ['salaire']}})
    data = {'salaire': 1000}
    assert validate_field('remuneration', data) == 1000
Esempio n. 15
0
def test_validate_naf(patch_schema, input, output):
    patch_schema({'naf': {'type': 'string', 'format': 'naf'}})
    data = {'naf': input}
    assert validate_field('naf', data) == output