def test_convert(self): data = Namespace(x='1') compare(load(data, convert(source.x, int)), expected=1)
def test_string_item(self): data = {'foo': 'bar'} compare(load(data, 'foo'), expected='bar')
def test_string_dotted(self): data = {'foo': Namespace(x=1)} compare(load(data, 'foo.x'), expected=1)
def test_getitem_nested_not_present(self): data = {} with ShouldRaise(NotPresent('foo')): load(data, required(source['foo']['bar']))
def test_index_not_present_okay(self): data = ['a'] compare(load(data, source[1]), expected=NotPresent(1))
def test_if_supplied_truthy(self): data = Namespace(x='1') compare(load(data, if_supplied(source.x)), expected='1')
def test_getitem(self): data = {'foo': 'bar'} compare(load(data, source['foo']), expected='bar')
def test_getitem(self): data = {'foo': 'bar'} compare(load(data, source['foo']), expected='bar')
def test_if_supplied_string(self): data = Namespace(x='1') compare(load(data, if_supplied('x')), expected='1')
def test_if_supplied_truthy(self): data = Namespace(x='1') compare(load(data, if_supplied(source.x)), expected='1')
def test_if_supplied_falsy(self): data = Namespace(x=None) compare(load(data, if_supplied(source.x)), expected=NotPresent(None))
def test_merge(self): with ShouldRaise(TypeError('Cannot use merge() in source')): load(None, source.merge())
def test_append(self): with ShouldRaise(TypeError('Cannot use append() in source')): load(None, source.append())
def test_insert(self): with ShouldRaise(TypeError('Cannot use insert() in source')): load(None, source.insert(0))
def test_convert_not_present(self): data = {} compare(load(data, convert('x', int)), expected=NotPresent('x'))
def test_if_supplied_required_falsy(self): data = Namespace(x=None) with ShouldRaise(NotPresent(None)): load(data, required(if_supplied(source.x)))
def test_append(self): with ShouldRaise(TypeError('Cannot use append() in source')): load(None, source.append())
def test_index(self): data = ['a', 'b'] compare(load(data, source[1]), expected='b')
def test_if_supplied_string(self): data = Namespace(x='1') compare(load(data, if_supplied('x')), expected='1')
def test_attr(self): data = Namespace(x=1) compare(load(data, source.x), expected=1)
def test_attr(self): data = Namespace(x=1) compare(load(data, source.x), expected=1)
def test_required_and_present(self): data = ['a', 'b'] compare(load(data, required(source[1])), expected='b')
def test_attr_nested_not_present(self): data = Namespace() with ShouldRaise(NotPresent('x')): load(data, required(source.x.y))
def test_getitem_nested_not_present(self): data = {} with ShouldRaise(NotPresent('foo')): load(data, required(source['foo']['bar']))
def test_nested(self): data = {'foo': ['a', 'b', Namespace(x=1)]} compare(load(data, source['foo'][2].x), expected=1)
def test_index_not_present(self): data = ['a'] with ShouldRaise(NotPresent(1)): load(data, required(source[1]))
def test_string_item_not_present(self): data = {} compare(load(data, 'foo'), expected=NotPresent('foo'))
def test_attr_nested_not_present(self): data = Namespace() with ShouldRaise(NotPresent('x')): load(data, required(source.x.y))
def test_convert_not_present(self): data = {} compare(load(data, convert('x', int)), expected=NotPresent('x'))
def test_getitem_not_present_okay(self): data = {} compare(load(data, source['foo']), expected=NotPresent('foo'))
def test_convert_string(self): data = Namespace(x='1') compare(load(data, convert('x', int)), expected=1)
def test_index_not_present_okay(self): data = ['a'] compare(load(data, source[1]), expected=NotPresent(1))
def test_insert(self): with ShouldRaise(TypeError('Cannot use insert() in source')): load(None, source.insert(0))
def test_attr_not_present_okay(self): data = Namespace() compare(load(data, source.x), expected=NotPresent('x'))
def test_merge(self): with ShouldRaise(TypeError('Cannot use merge() in source')): load(None, source.merge())
def test_nested(self): data = {'foo': ['a', 'b', Namespace(x=1)]} compare(load(data, source['foo'][2].x), expected=1)
def test_if_supplied_falsy(self): data = Namespace(x=None) compare(load(data, if_supplied(source.x)), expected=NotPresent(None))
def test_nested_missing_okay(self): data = {'foo': []} compare(load(data, source['foo'][2].x), expected=NotPresent(2))
def test_if_supplied_required_falsy(self): data = Namespace(x=None) with ShouldRaise(NotPresent(None)): load(data, required(if_supplied(source.x)))
def test_string_item(self): data = {'foo': 'bar'} compare(load(data, 'foo'), expected='bar')
def test_index(self): data = ['a', 'b'] compare(load(data, source[1]), expected='b')
def test_string_attr(self): data = Namespace(foo='bar') compare(load(data, 'foo'), expected='bar')
def test_required_and_present(self): data = ['a', 'b'] compare(load(data, required(source[1])), expected='b')
def test_string_item_not_present(self): data = {} compare(load(data, 'foo'), expected=NotPresent('foo'))
def test_index_not_present(self): data = ['a'] with ShouldRaise(NotPresent(1)): load(data, required(source[1]))
def test_string_attr_not_present(self): data = Namespace() compare(load(data, 'foo'), expected=NotPresent('foo'))
def test_getitem_not_present_okay(self): data = {} compare(load(data, source['foo']), expected=NotPresent('foo'))
def test_root(self): data = {'foo'} compare(load(data, source), expected=data)
def test_attr_not_present_okay(self): data = Namespace() compare(load(data, source.x), expected=NotPresent('x'))
def test_string_dotted(self): data = {'foo': Namespace(x=1)} compare(load(data, 'foo.x'), expected=1)
def test_nested_missing_okay(self): data = {'foo': []} compare(load(data, source['foo'][2].x), expected=NotPresent(2))
def test_string_item_not_present_required(self): data = {} with ShouldRaise(NotPresent('foo')): load(data, required('foo'))
def test_string_attr(self): data = Namespace(foo='bar') compare(load(data, 'foo'), expected='bar')
def test_convert(self): data = Namespace(x='1') compare(load(data, convert(source.x, int)), expected=1)
def test_string_attr_not_present(self): data = Namespace() compare(load(data, 'foo'), expected=NotPresent('foo'))
def test_root(self): data = {'foo'} compare(load(data, source), expected=data)
def test_string_item_not_present_required(self): data = {} with ShouldRaise(NotPresent('foo')): load(data, required('foo'))
def test_convert_string(self): data = Namespace(x='1') compare(load(data, convert('x', int)), expected=1)