def test_setdefault_subclass(self): class SubDict(dict): pass d = {} deepsetdefault(d, 1, 2, last=SubDict()) self.assertIs(type(d[1][2]), SubDict)
def test_setdefault_last(self): x = { 1: { 2: {} } } x_default = { 1: { 2: { 3: [] } } } y_default = [] y = deepsetdefault(x, 1, 2, 3, last=[]) self.assertEqual(x, x_default) self.assertEqual(y, y_default)
def test_setdefault_distinct(self): x = { 1: { 2: {} } } x_default = { 1: { 2: {} }, 3: { 4: {} } } y_default = {} y = deepsetdefault(x, 3, 4) self.assertEqual(x, x_default) self.assertEqual(y, y_default)
def test_setdefault_existing(self): x = { 1: { 2: { 3: {} } } } x_default = { 1: { 2: { 3: {} } } } y_default = { 2: { 3: {} } } y = deepsetdefault(x, 1) self.assertEqual(x, x_default) self.assertEqual(y, y_default)
def test_setdefault_empty(self): x = {} x_default = { 1: { 2: {} } } y_default = {} y = deepsetdefault(x, 1, 2) self.assertEqual(x, x_default) self.assertEqual(y, y_default)