def test_as_list_default(data): assert nested_get(data, ('a', 'b', 'c', 'd'), as_list=True) == [] assert nested_get(data, ('a', 'b', 'c', 'd'), default='foo', as_list=True) == ['foo']
def test_as_list(data): assert nested_get(data, ('a', 'b', 'c'), as_list=True) == [10] assert nested_get(data, ('a.b.c'), as_list=True) == [10] assert nested_get(data, ('a', 'b'), as_list=True) == [{'c': 10}] assert nested_get(data, ('a.b'), as_list=True) == [{'c': 10}]
def test_required_typeerror(data): with pytest.raises(TypeError): assert nested_get(data, ('a', 'b', 'c', 'd'), required=True)
def test_required_keyerror(data): with pytest.raises(KeyError): assert nested_get(data, ('z', ), required=True)
def test_default(data, keys, expected): assert nested_get(data, keys, default='hey') == expected
def test_basic(data, keys, expected): assert nested_get(data, keys) == expected