def test_heavy_nested(lst):
    assert validate([[int], float, [[float]]], lst) is None

    with pytest.raises(TypeError):
        validate([[str], int, int], lst)

    with pytest.raises(TypeError):
        validate([[[float]]], lst)
def test_different_sequences(lst, tpl):
    with pytest.raises(TypeError):
        if tpl:
            validate([int], tpl)
        else:
            validate([], tpl)

    with pytest.raises(TypeError):
        if lst:
            validate((int), lst)
        else:
            validate((), lst)
Example #3
0
def test_advanced(dct):
    structure = {
        'total_count': int,
        'active': bool,
        'people': [{
            'id': int,
            'title': str,
            'salary': float,
        }],
        'timestamps': [int],
    }
    assert validate(structure, dct) is None
Example #4
0
def test_plain_no_strict(dct):
    assert validate({'a': str}, dct, strict=False) is None
Example #5
0
def test_simple_error(not_string):
    with pytest.raises(TypeError):
        validate(str, not_string)
def test_list_lengths(lst):
    with pytest.raises(ValueError):
        validate([int, int, int, str], lst)
def test_plain(li):
    assert validate([int], li) is None
Example #8
0
def test_plain_type_error(tpl):
    with pytest.raises(TypeError):
        validate((int, ), tpl)
def test_dict_nested(lst):
    assert validate([{'a': {'b': [dict]}}], lst) is None
Example #10
0
def test_simple_pos_int(num):
    assert validate(positive_int, num) is None
Example #11
0
def test_deep_nesting(data):
    type_mask = [two_item_list, [positive_int, two_item_list], [title]]
    assert validate(type_mask, data) is None
Example #12
0
def test_empty():
    assert validate({}, {}) is None
Example #13
0
def test_nested_dict(dct):
    assert validate({'a': {'b': int}}, dct) is None
Example #14
0
def test_strict(dct):
    assume(len(dct) > 1)
    with pytest.raises(KeyError):
        validate({'a': str}, dct)
Example #15
0
def test_plain_no_strict_error(dct):
    with pytest.raises(KeyError):
        validate({'a': str, 'b': float}, dct, strict=False)
Example #16
0
def test_simple_title(words):
    assert validate(title, words) is None
def test_different_mappings(dct):
    with pytest.raises(TypeError):
        validate(dict, OrderedDict(dct))
        validate(OrderedDict, dct)
Example #18
0
def test_simple_ti_list(lst):
    assert validate(two_item_list, lst) is None
Example #19
0
def test_plain(tpl):
    assert validate((int, ), tpl) is None
Example #20
0
def test_simple_pos_int_error(num):
    with pytest.raises(TypeError):
        validate(positive_int, num)
Example #21
0
def test_list_lengths(tpl):
    with pytest.raises(ValueError):
        validate((int, int, int, str), tpl)
Example #22
0
def test_simple_title_error(words):
    assume(len(words) > 0)
    assume(not words.isspace())
    with pytest.raises(TypeError):
        validate(title, words)
Example #23
0
def test_plain_type_error(lst):
    with pytest.raises(TypeError):
        validate([int], lst)
Example #24
0
def test_simple_ti_list_error(lst):
    with pytest.raises(TypeError):
        validate(two_item_list, lst)
Example #25
0
def test_nested(lst):
    assert validate([[int]], lst) is None

    with pytest.raises(TypeError):
        validate([int], lst)
Example #26
0
def test_nested(data):
    type_mask = [{'id': positive_int, 'name': title}]

    assert validate(type_mask, data) is None
Example #27
0
def test_empty():
    assert validate([], []) is None
Example #28
0
def test_nested_error(data):
    assume(len(data) != 0)
    type_mask = [{'id': positive_int, 'name': title}]

    with pytest.raises(TypeError):
        validate(type_mask, data)
Example #29
0
def test_simple(string):
    assert validate(str, string) is None
Example #30
0
def test_plain_key_error(dct):
    with pytest.raises(KeyError):
        validate({'a': str, 'b': float}, dct)