def test_dict_dottedset(self): tests = [ ( {'list': {}}, ( ('list.0.a',7, {'list':[{'a':7}]}), ) ), ( {'list': {'x':{}}}, ( ('list.x.0.a',7, {'list':{'x':[{'a':7}]}}), ) ), ] for d, checkers in tests: for k, v, result in checkers: _setdefault(d,k,v) self.assertEquals(d, result)
def test_setdefault(self): testval = 'test' tests = [ ( {}, 'one.a', {'one': {'a':testval}} ), ( {}, 'list.0.a', {'list': [ {'a':testval} ] }), ( [{'a': 1}], '1.a', [{'a':1},{'a':testval}] ), ( {'list':[{'a': 1}]}, 'list.1.a', {'list': [{'a':1},{'a':testval}] }), ( {'list': {'x':{}}}, 'list.x.0.a', {'list':{'x':[{'a':testval}]}} ), ( {'one':{'a':1}}, 'one.b', {'one': {'a':1,'b':testval}}), ( {'one': {'a': [''], 'b': ['']}}, 'one.c.x', {'one': {'a': [''], 'b': [''], 'c':{'x':testval}}} ), ] for data, dottedkey, value in tests: _setdefault(data, dottedkey, testval) self.assertEquals(data, value)