def test_get_data_errors_simple(): assert get_data_errors({'a': 'foobar'}, [('a', int)]) == ['Field "a" should be int'] assert get_data_errors({'a': 'foobar'}, [('a', { text: text })]) == ['Field "a" should be dict'] assert get_data_errors({'a': { 'foobar': 2 }}, [('a', { text: text })]) == ['Values of "a" should be ' + text.__name__] assert get_data_errors({'a': { 2: 'foobar' }}, [('a', { text: text })]) == ['Keys of "a" should be ' + text.__name__]
def test_get_data_errors_with_known_subkey(): assert get_data_errors({'sub': {'int_item': 42}}, field_types) == [] assert get_data_errors({'sub': {'text_item': ''}}, field_types) == []
def test_get_data_errors_with_unknown_subkey(): assert get_data_errors({'sub': { 'unknown': 42 }}, field_types) == ['Unknown key name: "sub.unknown"']
def test_get_data_errors_sub_dict(): assert get_data_errors({'a': 1}, field_types) == ['Field "a" should be dict'] assert get_data_errors({'a': { 'b': 1 }}, field_types) == ['Field "a.b" should be dict']
def test_get_data_errors_unknown_keys(): assert get_data_errors({'a': 'b'}, []) == ['Unknown key name: "a"'] assert get_data_errors({'x': 1}, field_types) == ['Unknown key name: "x"']
def test_get_data_errors_invalid_type_specifier(): with pytest.raises(ValueError): get_data_errors({'x': 1}, [('x', set('abc'))])
def test_get_data_errors_edge_cases(): assert get_data_errors({}, []) == [] assert get_data_errors({}, field_types) == []
def test_get_data_errors_with_sub_text_error(): not_ok = dict(ok_data, sub={'text_item': 42}) assert get_data_errors(not_ok, field_types) == [ 'Field "sub.text_item" should be ' + text.__name__ ]
def test_get_data_errors_with_dict_error(): not_ok = dict(ok_data, dict_item='hello') assert get_data_errors( not_ok, field_types) == ['Field "dict_item" should be dict']
def test_get_data_errors_with_list_item_error(): not_ok = dict(ok_data, list_item_int_value=['not int']) assert get_data_errors(not_ok, field_types) == [ 'Values of "list_item_int_value" should be int' ]
def test_get_data_errors_with_list_error(): not_ok = dict(ok_data, list_item_int_value=42) assert get_data_errors( not_ok, field_types) == ['Field "list_item_int_value" should be list']
def test_get_data_errors_with_ok_data(): assert get_data_errors(ok_data, field_types) == []