def test_create_nested_attrs_from_dotted_string(self): # exception data = Namespace() with ShouldRaise(AttributeError( "'Namespace' object has no attribute 'x'" )): store(data, 'x.y', 2)
def test_getitem_not_present(self): data = {'foo': 'bar'} store(data, target['foo'], NotPresent('foo')) compare(data, expected={'foo': 'bar'})
def test_getitem(self): data = {'foo': 'bar'} store(data, target['foo'], 'baz') compare(data, expected={'foo': 'baz'})
def test_merge(self): data = {'x': 1} data = store(data, target.merge(), {'y': 2}, MergeContext()) compare(data, expected={'x': 1, 'y': 2})
def test_string_dotted(self): data = {'foo': Namespace(x=1)} store(data, 'foo.x', 2) compare(data['foo'].x, expected=2)
def test_insert(self): data = ['a', 'b'] store(data, target.insert(1), 'c') compare(data, expected=['a', 'c', 'b'])
def test_attr_not_present(self): data = Namespace(x=1) store(data, target.x, NotPresent('foo')) compare(data.x, 1)
def test_append_not_present(self): data = [] store(data, target.append()['a'], NotPresent('foo')) compare(data, expected=[{}])
def test_append(self): data = ['a', 'b'] store(data, target.append(), 'c') compare(data, expected=['a', 'b', 'c'])
def test_append_nested(self): data = [] store(data, target.append()['a'], 'b') compare(data, expected=[{'a': 'b'}])
def test_index_not_present(self): data = ['a', 'b'] store(data, target[1], NotPresent(1)) compare(data, expected=['a', 'b'])
def test_index(self): data = ['a', 'b'] store(data, target[1], 'c') compare(data, expected=['a', 'c'])
def test_insert_nested(self): data = [] store(data, target.insert(0)['a'], 'b') compare(data, expected=[{'a': 'b'}])
def test_insert_not_present(self): data = [] store(data, target.insert(0)['a'], NotPresent('foo')) compare(data, expected=[{}])
def test_attr(self): data = Namespace(x=1) store(data, target.x, 2) compare(data.x, 2)
def test_string_item(self): data = {'foo': 'bar'} store(data, 'foo', 'baz') compare(data, expected={'foo': 'baz'})
def test_create_nested_attrs(self): # exception data = {} with ShouldRaise(AttributeError("'dict' object has no attribute 'x'")): store(data, target.x.y, 2)
def test_nested(self): data = {'foo': ['a', 'b', Namespace(x=1)]} store(data, target['foo'][2].x, 2) compare(data['foo'][2].x, expected=2)
def test_ensure_on_required(self): data = '1' with ShouldRaise(TypeError('Cannot use required() as target')): store(data, required(target).x, 'y')
def test_merge_not_present(self): data = {'x': {'y': 2}} store(data, target['x'].merge(), NotPresent('foo'), MergeContext()) compare(data, expected={'x': {'y': 2}})
def test_string_attr(self): data = Namespace(foo='bar') store(data, target.x, 2) compare(data.x, 2)
def test_create_nested_dicts(self): # created needed dicts data = {} store(data, target['x']['y'], 2) compare(data, expected={'x': {'y': 2}})
def test_create_from_dotted_string(self): data = {} store(data, 'x.y', 2) compare(data, expected={'x': {'y': 2}})
def test_create_nested_attrs_from_dotted_string(self): # exception data = Namespace() with ShouldRaise( AttributeError("'Namespace' object has no attribute 'x'")): store(data, 'x.y', 2)
def test_ensure_on_convert(self): data = '1' with ShouldRaise(TypeError('Cannot use convert() as target')): store(data, convert(target, int).x, 'y')
def test_ensure_on_supplied(self): data = '1' with ShouldRaise(TypeError('Cannot use if_supplied() as target')): store(data, if_supplied(target).x, 'y')
def test_merge_nested(self): data = {'x': {'y': 2}} store(data, target['x'].merge(), {'z': 1}, MergeContext()) compare(data, expected={'x': {'y': 2, 'z': 1}})
def test_ensure_on_merge(self): data = {} with ShouldRaise(TypeError('merge() must be final operation')): store(data, target.merge().x, 'y', MergeContext())
def test_root(self): data = {'foo'} with ShouldRaise(TypeError('Cannot store at root')): store(data, target, 'foo') compare(data, expected={'foo'})