Exemple #1
0
    def test_flat(self):
        x = xdict(out1)

        self.assertEqual(sorted(x.flatkeys()), sorted(flatout1.keys()))
        self.assertEqual(sorted(x.flatvalues()), sorted(flatout1.values()))
        self.assertEqual(sorted(x.flatitems()), sorted(flatout1.items()))

        if hasattr(flatout1, 'iterkeys'):
            self.assertEqual(sorted(x.iterflatkeys()),
                             sorted(flatout1.iterkeys()))
        if hasattr(flatout1, 'itervalues'):
            self.assertEqual(sorted(x.iterflatvalues()),
                             sorted(flatout1.itervalues()))
        if hasattr(flatout1, 'iteritems'):
            self.assertEqual(sorted(x.iterflatitems()),
                             sorted(flatout1.iteritems()))

        if hasattr(flatout1, 'iterkeys'):
            self.assertEqual(sorted(x.viewflatkeys()),
                             sorted(flatout1.iterkeys()))
        if hasattr(flatout1, 'itervalues'):
            self.assertEqual(sorted(x.viewflatvalues()),
                             sorted(flatout1.itervalues()))
        if hasattr(flatout1, 'iteritems'):
            self.assertEqual(sorted(x.viewflatitems()),
                             sorted(flatout1.iteritems()))
Exemple #2
0
    def test_copy(self):
        w = xdict(out1)

        x = w.copy()

        self.assertEqual(w, x)
        self.assertTrue(w is not x)
        self.assertTrue(w['a'] is x['a'])
        self.assertTrue(w['b'] is x['b'])
        self.assertTrue(w['c'] is x['c'])

        y = copy.copy(w)

        self.assertEqual(w, y)
        self.assertTrue(w is not y)
        self.assertTrue(w['a'] is y['a'])
        self.assertTrue(w['a.one'] is y['a.one'])
        self.assertTrue(w['b'] is y['b'])
        self.assertTrue(w['b.two'] is y['b.two'])
        self.assertTrue(w['c'] is y['c'])
        self.assertTrue(w['c.three'] is y['c.three'])

        z = copy.deepcopy(w)

        # TODO: Deepcopy is only shallow copying
        self.assertEqual(w, z)
        self.assertTrue(w is not z)
        self.assertTrue(w['a'] is not z['a'])
        #       self.assertTrue(w['a.one'] is not z['a.one'])
        self.assertTrue(w['b'] is not z['b'])
        #       self.assertTrue(w['b.two'] is not z['b.two'])
        self.assertTrue(w['c'] is not z['c'])
    def test_copy(self):
        w = xdict(out1)

        x = w.copy()

        self.assertEqual(w, x)
        self.assertTrue(w is not x)
        self.assertTrue(w['a'] is x['a'])
        self.assertTrue(w['b'] is x['b'])
        self.assertTrue(w['c'] is x['c'])

        y = copy.copy(w)

        self.assertEqual(w, y)
        self.assertTrue(w is not y)
        self.assertTrue(w['a'] is y['a'])
        self.assertTrue(w['a.one'] is y['a.one'])
        self.assertTrue(w['b'] is y['b'])
        self.assertTrue(w['b.two'] is y['b.two'])
        self.assertTrue(w['c'] is y['c'])
        self.assertTrue(w['c.three'] is y['c.three'])

        z = copy.deepcopy(w)

        # TODO: Deepcopy is only shallow copying
        self.assertEqual(w, z)
        self.assertTrue(w is not z)
        self.assertTrue(w['a'] is not z['a'])
#       self.assertTrue(w['a.one'] is not z['a.one'])
        self.assertTrue(w['b'] is not z['b'])
#       self.assertTrue(w['b.two'] is not z['b.two'])
        self.assertTrue(w['c'] is not z['c'])
Exemple #4
0
    def test_setitem(self):
        x = xdict()
        x['a.one'] = 1
        x['b.two'] = 2
        x['c.three.nest'] = 3
        x['c.four.nest.double'] = 4
        self.assertEqual(x, out1)

        x[100] = 1000
        self.assertEqual(x[100], 1000)

        x = xdict()
        x['a.one'] = 1
        x['b.two'] = 2
        x['c.three.nest'] = 3
        x['c.four'] = {'nest': {'double': 4}}
        self.assertEqual(x, out1)
    def test_setitem(self):
        x = xdict()
        x['a.one'] = 1
        x['b.two'] = 2
        x['c.three.nest'] = 3
        x['c.four.nest.double'] = 4
        self.assertEqual(x, out1)

        x[100] = 1000
        self.assertEqual(x[100], 1000)

        x = xdict()
        x['a.one'] = 1
        x['b.two'] = 2
        x['c.three.nest'] = 3
        x['c.four'] = {'nest': {'double': 4}}
        self.assertEqual(x, out1)
Exemple #6
0
    def test_constructor(self):
        x = xdict(one=1, two=2, three=3)
        self.assertEqual(x, dict(one=1, two=2, three=3))

        x = xdict([('a.one', 1), ('b.two', 2), ('c.three.nest', 3)])
        self.assertEqual(x, {
            'a': {
                'one': 1
            },
            'b': {
                'two': 2
            },
            'c': {
                'three': {
                    'nest': 3
                }
            }
        })

        x = xdict([('a.one', 1), ('b.two', 2), ('c.three.nest', 3),
                   ('c.four.nest.double', 4)])
        self.assertEqual(x, out1)

        x = xdict(out1)
        self.assertEqual(x, out1)

        x = xdict(flatout1)
        self.assertEqual(x, out1)

        x = xdict(**out1)
        self.assertEqual(x, out1)

        x = xdict(**flatout1)
        self.assertEqual(x, out1)
    def test_constructor(self):
        x = xdict(one=1, two=2, three=3)
        self.assertEqual(x, dict(one=1, two=2, three=3))

        x = xdict([('a.one', 1), ('b.two', 2), ('c.three.nest', 3)])
        self.assertEqual(x, {
            'a': {'one': 1},
            'b': {'two': 2},
            'c': {
                'three': {'nest': 3}
            }
        })

        x = xdict([('a.one', 1), ('b.two', 2), ('c.three.nest', 3), ('c.four.nest.double', 4)])
        self.assertEqual(x, out1)

        x = xdict(out1)
        self.assertEqual(x, out1)

        x = xdict(flatout1)
        self.assertEqual(x, out1)

        x = xdict(**out1)
        self.assertEqual(x, out1)
      
        x = xdict(**flatout1)
        self.assertEqual(x, out1)
Exemple #8
0
    def test_delitem(self):
        newout1 = copy.deepcopy(out1)
        x = xdict(out1)

        del x['a']
        del newout1['a']
        self.assertEqual(x, newout1)

        del x['c.four.nest']
        del newout1['c']['four']['nest']
        self.assertEqual(x, newout1)

        with self.assertRaises(KeyError):
            del x['a.does.not.exist']
    def test_delitem(self):
        newout1 = copy.deepcopy(out1)
        x = xdict(out1)

        del x['a']
        del newout1['a']
        self.assertEqual(x, newout1)

        del x['c.four.nest']
        del newout1['c']['four']['nest']
        self.assertEqual(x, newout1)

        with self.assertRaises(KeyError):
            del x['a.does.not.exist']
Exemple #10
0
    def test_pop(self):
        x = xdict(out1)

        self.assertEqual(x, out1)

        self.assertEqual(x.pop('a.one'), out1['a']['one'])
        self.assertEqual(x.pop('b.two'), out1['b']['two'])
        self.assertEqual(x.pop('c'), out1['c'])

        self.assertEqual(x, {'a': {}, 'b': {}})

        with self.assertRaises(KeyError):
            x.pop('a.does.not.exist')

        self.assertEqual(x.pop('a.does.not.exist', 1000), 1000)
    def test_pop(self):
        x = xdict(out1)

        self.assertEqual(x, out1)

        self.assertEqual(x.pop('a.one'), out1['a']['one'])
        self.assertEqual(x.pop('b.two'), out1['b']['two'])
        self.assertEqual(x.pop('c'), out1['c'])

        self.assertEqual(x, {'a': {}, 'b': {}})

        with self.assertRaises(KeyError):
            x.pop('a.does.not.exist')

        self.assertEqual(x.pop('a.does.not.exist', 1000), 1000)
Exemple #12
0
    def test_getitem(self):
        x = xdict(out1)
        self.assertEqual(x['a.one'], 1)
        self.assertEqual(x['b.two'], 2)
        self.assertEqual(x['c.three.nest'], 3)
        self.assertEqual(x['c.four.nest.double'], 4)

        self.assertEqual(x['a'], {'one': 1})
        self.assertEqual(x['b'], {'two': 2})
        self.assertEqual(x['c'], {
            'three': {
                'nest': 3
            },
            'four': {
                'nest': {
                    'double': 4
                }
            }
        })
        self.assertEqual(x['c.three'], {'nest': 3})
        self.assertEqual(x['c.four'], {'nest': {'double': 4}})
        self.assertEqual(x['c.four.nest'], {'double': 4})

        self.assertEqual(x['a'], {'one': 1})
        self.assertEqual(x['a']['one'], 1)
        self.assertEqual(x['b'], {'two': 2})
        self.assertEqual(x['b']['two'], 2)
        self.assertEqual(x['c'], {
            'three': {
                'nest': 3
            },
            'four': {
                'nest': {
                    'double': 4
                }
            }
        })
        self.assertEqual(x['c']['three'], {'nest': 3})
        self.assertEqual(x['c']['three']['nest'], 3)
        self.assertEqual(x['c']['four'], {'nest': {'double': 4}})
        self.assertEqual(x['c']['four']['nest'], {'double': 4})
        self.assertEqual(x['c']['four']['nest']['double'], 4)
    def test_flat(self):
        x = xdict(out1)

        self.assertEqual(sorted(x.flatkeys()), sorted(flatout1.keys()))
        self.assertEqual(sorted(x.flatvalues()), sorted(flatout1.values()))
        self.assertEqual(sorted(x.flatitems()), sorted(flatout1.items()))

        if hasattr(flatout1, 'iterkeys'):
            self.assertEqual(sorted(x.iterflatkeys()), sorted(flatout1.iterkeys()))
        if hasattr(flatout1, 'itervalues'):
            self.assertEqual(sorted(x.iterflatvalues()), sorted(flatout1.itervalues()))
        if hasattr(flatout1, 'iteritems'):
            self.assertEqual(sorted(x.iterflatitems()), sorted(flatout1.iteritems()))

        if hasattr(flatout1, 'iterkeys'):
            self.assertEqual(sorted(x.viewflatkeys()), sorted(flatout1.iterkeys()))
        if hasattr(flatout1, 'itervalues'):
            self.assertEqual(sorted(x.viewflatvalues()), sorted(flatout1.itervalues()))
        if hasattr(flatout1, 'iteritems'):
            self.assertEqual(sorted(x.viewflatitems()), sorted(flatout1.iteritems()))
    def test_contains(self):
        x = xdict(out1)

        self.assertTrue('a' in x)
        self.assertTrue('a.one' in x)
        self.assertTrue('b' in x)
        self.assertTrue('c.four' in x)
        self.assertTrue('c.four.nest' in x)
        self.assertTrue('c.four.nest.double' in x)
        self.assertFalse('z' in x)
        self.assertFalse('four' in x)

        self.assertTrue(x.has_key('a'))
        self.assertTrue(x.has_key('a.one'))
        self.assertTrue(x.has_key('b'))
        self.assertTrue(x.has_key('c.four'))
        self.assertTrue(x.has_key('c.four.nest'))
        self.assertTrue(x.has_key('c.four.nest.double'))
        self.assertFalse(x.has_key('z'))
        self.assertFalse(x.has_key('four'))
    def test_setdefault(self):
        x = xdict(out1)

        self.assertEqual(x.setdefault('a.one'), 1)
        self.assertEqual(x.setdefault('b.two'), 2)
        self.assertEqual(x.setdefault('b'), {'two': 2})

        self.assertEqual(x.setdefault('w.none'), None)
        self.assertEqual(x['w.none'], None)
        self.assertEqual(x['w']['none'], None)
        self.assertEqual(x.setdefault('x.y.z', 200), 200)
        self.assertEqual(x['x.y.z'], 200)
        self.assertEqual(x['x']['y']['z'], 200)
        self.assertEqual(x.setdefault('x.y.z', 10), 200)
        self.assertEqual(x['x.y.z'], 200)
        self.assertEqual(x['x']['y']['z'], 200)
        self.assertEqual(x['x']['y'], {'z': 200})

        self.assertEqual(x.setdefault('does.not.exist', {'new': 'key'}), {'new': 'key'})
        self.assertTrue(isinstance(x.setdefault('does.not.exist', {'new': 'key'}), xdict))
Exemple #16
0
    def test_contains(self):
        x = xdict(out1)

        self.assertTrue('a' in x)
        self.assertTrue('a.one' in x)
        self.assertTrue('b' in x)
        self.assertTrue('c.four' in x)
        self.assertTrue('c.four.nest' in x)
        self.assertTrue('c.four.nest.double' in x)
        self.assertFalse('z' in x)
        self.assertFalse('four' in x)

        self.assertTrue(x.has_key('a'))
        self.assertTrue(x.has_key('a.one'))
        self.assertTrue(x.has_key('b'))
        self.assertTrue(x.has_key('c.four'))
        self.assertTrue(x.has_key('c.four.nest'))
        self.assertTrue(x.has_key('c.four.nest.double'))
        self.assertFalse(x.has_key('z'))
        self.assertFalse(x.has_key('four'))
Exemple #17
0
    def test_setdefault(self):
        x = xdict(out1)

        self.assertEqual(x.setdefault('a.one'), 1)
        self.assertEqual(x.setdefault('b.two'), 2)
        self.assertEqual(x.setdefault('b'), {'two': 2})

        self.assertEqual(x.setdefault('w.none'), None)
        self.assertEqual(x['w.none'], None)
        self.assertEqual(x['w']['none'], None)
        self.assertEqual(x.setdefault('x.y.z', 200), 200)
        self.assertEqual(x['x.y.z'], 200)
        self.assertEqual(x['x']['y']['z'], 200)
        self.assertEqual(x.setdefault('x.y.z', 10), 200)
        self.assertEqual(x['x.y.z'], 200)
        self.assertEqual(x['x']['y']['z'], 200)
        self.assertEqual(x['x']['y'], {'z': 200})

        self.assertEqual(x.setdefault('does.not.exist', {'new': 'key'}),
                         {'new': 'key'})
        self.assertTrue(
            isinstance(x.setdefault('does.not.exist', {'new': 'key'}), xdict))
    def test_getitem(self):
        x = xdict(out1)
        self.assertEqual(x['a.one'], 1)
        self.assertEqual(x['b.two'], 2)
        self.assertEqual(x['c.three.nest'], 3)
        self.assertEqual(x['c.four.nest.double'], 4)

        self.assertEqual(x['a'], {'one': 1})
        self.assertEqual(x['b'], {'two': 2})
        self.assertEqual(x['c'], {'three': {'nest': 3}, 'four': {'nest': {'double': 4}}})
        self.assertEqual(x['c.three'], {'nest': 3})
        self.assertEqual(x['c.four'], {'nest': {'double': 4}})
        self.assertEqual(x['c.four.nest'], {'double': 4})
        
        self.assertEqual(x['a'], {'one': 1})
        self.assertEqual(x['a']['one'], 1)
        self.assertEqual(x['b'], {'two': 2})
        self.assertEqual(x['b']['two'], 2)
        self.assertEqual(x['c'], {'three': {'nest': 3}, 'four': {'nest': {'double': 4}}})
        self.assertEqual(x['c']['three'], {'nest': 3})
        self.assertEqual(x['c']['three']['nest'], 3)
        self.assertEqual(x['c']['four'], {'nest': {'double': 4}})
        self.assertEqual(x['c']['four']['nest'], {'double': 4})
        self.assertEqual(x['c']['four']['nest']['double'], 4)
Exemple #19
0
 def test_flattened(self):
     x = xdict(out1)
     self.assertEqual(x.flattened(), flatout1)
 def test_json(self):
     x = xdict(out1)
     self.assertEqual(xdict.from_json(x.to_json()), out1)
 def test_flattened(self):
     x = xdict(out1)
     self.assertEqual(x.flattened(), flatout1)        
Exemple #22
0
 def test_json(self):
     x = xdict(out1)
     self.assertEqual(xdict.from_json(x.to_json()), out1)
 def test_get(self):
     x = xdict(out1)
     
     self.assertEqual(x.get('a', 1000), {'one': 1})
     self.assertEqual(x.get('a.one', 1000), 1)
     self.assertEqual(x.get('a.does.not.exist', 1000), 1000)
Exemple #24
0
    def test_get(self):
        x = xdict(out1)

        self.assertEqual(x.get('a', 1000), {'one': 1})
        self.assertEqual(x.get('a.one', 1000), 1)
        self.assertEqual(x.get('a.does.not.exist', 1000), 1000)