def test_multiple_matches_return_all_namespaces(): errors = { 'bar': [{'baz': 'foo'}], 'bop': 'foo', } path = find_message_in_errors('foo', errors) assert set(path) == set(['bop', 'bar.0.baz'])
def test_a_complex_nested_match(): errors = { 'bar': [{ 'baz': 'foo' }], } path = find_message_in_errors('foo', errors) assert set(path) == set(['bar.0.baz'])
def test_non_matching_string_returns_empty(): """ If a string is passed in as errors, the namespace should be returned if the string is a match. """ errors = 'foo' path = find_message_in_errors('not-a-match', errors) assert set(path) == set([])
def test_matched_string_returns_namespace_path(): """ If a string is passed in as errors, the namespace should be returned if the string is a match. """ errors = 'foo' path = find_message_in_errors('foo', errors, namespace='namespace') assert set(path) == set(['namespace'])
def test_multiple_matches_return_all_namespaces(): errors = { 'bar': [{ 'baz': 'foo' }], 'bop': 'foo', } path = find_message_in_errors('foo', errors) assert set(path) == set(['bop', 'bar.0.baz'])
def test_nested_matches_return_full_namespace(): errors = { 'bar': ['foo'], } path = find_message_in_errors('foo', errors) assert set(path) == set(['bar.0'])
def test_dictionary_matches_return_element_key(): errors = { 'bar': 'foo', } path = find_message_in_errors('foo', errors) assert set(path) == set(['bar'])
def test_list_matches_return_element_index(): errors = ['bar', 'foo'] path = find_message_in_errors('foo', errors) assert set(path) == set(['1'])
def test_a_complex_nested_match(): errors = { 'bar': [{'baz': 'foo'}], } path = find_message_in_errors('foo', errors) assert set(path) == set(['bar.0.baz'])