예제 #1
0
    def test__update_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict()

        dct.update(itms)

        self.assertEqual(len(dct._data), 3)
        self.assertIs(dct._data['k1'], itms[0][1])
        self.assertIs(dct._data['k2'], itms[1][1])
        self.assertIs(dct._data['k3'], itms[2][1])

        self.assertEqual(len(dct), 3)
        self.assertIs(dct['k1'], itms[0][1])
        self.assertIs(dct['k2'], itms[1][1])
        self.assertIs(dct['k3'], itms[2][1])

        newk2 = ('v2',)
        newk4 = ('v4',)
        dct.update({ 'k2' : newk2 , 'k4' : newk4 })

        self.assertEqual(len(dct._data), 4)
        self.assertIs(dct._data['k2'], newk2)
        self.assertIs(dct._data['k4'], newk4)

        self.assertEqual(len(dct), 4)
        self.assertIs(dct['k2'], newk2)
        self.assertIs(dct['k4'], newk4)
예제 #2
0
    def test__get_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict(itms)

        self.assertEqual(len(dct._data), 3)
        self.assertEqual(len(dct), 3)

        self.assertIs(dct.get('k1'), itms[0][1])
        self.assertEqual(len(dct._data), 3)
        self.assertTrue('k1' in dct._data)
        self.assertEqual(len(dct), 3)
        self.assertTrue('k1' in dct)

        self.assertIs(dct.get('k2'), itms[1][1])
        self.assertEqual(len(dct._data), 3)
        self.assertTrue('k2' in dct._data)
        self.assertEqual(len(dct), 3)
        self.assertTrue('k2' in dct)

        self.assertIs(dct.get('k3'), itms[2][1])
        self.assertEqual(len(dct._data), 3)
        self.assertTrue('k3' in dct._data)
        self.assertEqual(len(dct), 3)
        self.assertTrue('k3' in dct)

        default = 'bar'
        self.assertIs(dct.get('foo'), None)
        self.assertIs(dct.get('foo', default), default)
예제 #3
0
    def test__pop_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict(itms)

        self.assertEqual(len(dct._data), 3)
        self.assertEqual(len(dct), 3)

        self.assertIs(dct.pop('k1'), itms[0][1])
        self.assertEqual(len(dct._data), 2)
        self.assertTrue('k1' not in dct._data)
        self.assertEqual(len(dct), 2)
        self.assertTrue('k1' not in dct)

        with self.assertRaises(KeyError): dct.pop('foo')

        self.assertIs(dct.pop('k2'), itms[1][1])
        self.assertEqual(len(dct._data), 1)
        self.assertTrue('k2' not in dct._data)
        self.assertEqual(len(dct), 1)
        self.assertTrue('k2' not in dct)

        self.assertIs(dct.pop('k3'), itms[2][1])
        self.assertEqual(len(dct._data), 0)
        self.assertTrue('k3' not in dct._data)
        self.assertEqual(len(dct), 0)
        self.assertTrue('k3' not in dct)

        with self.assertRaises(KeyError): dct.pop('k3')
예제 #4
0
    def test__delitem_1(self):
        itms = {'k1' : ('v1',), 'k2' : ('v2',), 'k3' : ('v3',) }
        dct = dict_.Dict(itms)

        self.assertEqual(len(dct._data), 3)
        self.assertIs(dct._data['k1'],itms['k1'])
        self.assertIs(dct._data['k2'],itms['k2'])
        self.assertIs(dct._data['k3'],itms['k3'])
        self.assertEqual(len(dct), 3)
        self.assertIs(dct['k1'],itms['k1'])
        self.assertIs(dct['k2'],itms['k2'])
        self.assertIs(dct['k3'],itms['k3'])
        del dct['k1']
        self.assertEqual(len(dct._data), 2)
        self.assertIs(dct._data['k2'],itms['k2'])
        self.assertIs(dct._data['k3'],itms['k3'])
        self.assertEqual(len(dct), 2)
        self.assertIs(dct['k2'],itms['k2'])
        self.assertIs(dct['k3'],itms['k3'])

        del dct['k2']
        self.assertEqual(len(dct._data), 1)
        self.assertIs(dct._data['k3'],itms['k3'])
        self.assertEqual(len(dct), 1)
        self.assertIs(dct['k3'],itms['k3'])

        with self.assertRaises(KeyError): del dct['k1']
        with self.assertRaises(KeyError): del dct['k2']
        with self.assertRaises(KeyError): del dct['foo']
예제 #5
0
    def test__setitem_1(self):
        itms = {'k1' : ('v1',), 'k2' : ('v2',), 'k3' : ('v3',) }
        dct = dict_.Dict()

        dct['k1'] = itms['k1']
        self.assertEqual(len(dct._data), 1)
        self.assertIs(dct._data['k1'], itms['k1'])
        self.assertEqual(len(dct), 1)
        self.assertIs(dct['k1'], itms['k1'])

        dct['k2'] = itms['k2']
        self.assertEqual(len(dct._data), 2)
        self.assertIs(dct._data['k2'], itms['k2'])
        self.assertEqual(len(dct), 2)
        self.assertIs(dct['k2'], itms['k2'])

        dct['k3'] = itms['k3']
        self.assertEqual(len(dct._data), 3)
        self.assertIs(dct._data['k3'], itms['k3'])
        self.assertEqual(len(dct), 3)
        self.assertIs(dct['k3'], itms['k3'])

        newk2 = ('x2',)
        dct['k2'] = newk2
        self.assertEqual(len(dct._data), 3)
        self.assertIs(dct._data['k2'], newk2)
        self.assertEqual(len(dct), 3)
        self.assertIs(dct['k2'], newk2)

        newk3 = ('x3',)
        dct['k3'] = newk3
        self.assertEqual(len(dct._data), 3)
        self.assertIs(dct._data['k3'], newk3)
        self.assertEqual(len(dct), 3)
        self.assertIs(dct['k3'], newk3)
예제 #6
0
    def test__clear_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict(itms)

        dct.clear()

        self.assertEqual(len(dct._data), 0)
        self.assertEqual(len(dct), 0)
예제 #7
0
    def test__init_1(self):
        itms = (('k1', ('v1',)), ('k2', ('v2',)))
        dct = dict_.Dict(itms)
        self.assertEqual(len(dct._data), len(itms))
        self.assertIs(dct._data['k1'], itms[0][1])
        self.assertIs(dct._data['k2'], itms[1][1])

        self.assertEqual(len(dct), len(itms))
예제 #8
0
    def test__keys_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict(itms)

        keys = [ t[0] for t in itms ]

        for x in dct.keys():
            self.assertTrue(x in keys)
            j = keys.index(x)
            self.assertIs(x, keys[j])
            keys.remove(x)
예제 #9
0
 def test__init_2(self):
     itms = {'k1' : ('v1',), 'k2' : ('v2',), 'k3' : ('v3',) }
     dct = dict_.Dict(itms)
     self.assertEqual(len(dct._data), len(itms))
     self.assertIs(dct._data['k1'], itms['k1'])
     self.assertIs(dct._data['k2'], itms['k2'])
     self.assertIs(dct._data['k3'], itms['k3'])
     #
     self.assertEqual(len(dct), len(itms))
     self.assertIs(dct['k1'], itms['k1'])
     self.assertIs(dct['k2'], itms['k2'])
     self.assertIs(dct['k3'], itms['k3'])
예제 #10
0
    def test__setdefault_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)) )
        dct = dict_.Dict(itms)

        k3 = ('v3',)
        self.assertIs(dct.setdefault('k3', k3), k3)
        self.assertIs(dct._data['k3'], k3)
        self.assertIs(dct['k3'], k3)
        newk2 = ('v2',)
        self.assertIs(dct.setdefault('k2', newk2), itms[1][1])
        self.assertIs(dct._data['k2'], itms[1][1])
        self.assertIs(dct['k2'], itms[1][1])

        self.assertEqual(len(dct), 3)
예제 #11
0
    def test__iter_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict(itms)

        keys = [ t[0] for t in itms ]

        it = iter(dct)
        for i in range(len(itms)):
            x = next(it)
            self.assertTrue(x in keys)
            j = keys.index(x)
            self.assertIs(x, keys[j])
            keys.remove(x)

        with self.assertRaises(StopIteration): next(it)
예제 #12
0
    def test__popitem_1(self):
        itms = [ ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) ]
        dct = dict_.Dict(itms)

        self.assertEqual(len(dct._data), 3)
        self.assertEqual(len(dct), 3)

        for i in range(3,0,-1):
            item = dct.popitem()
            j = itms.index(item)
            self.assertIs(item[1], itms[j][1])
            self.assertEqual(len(dct), i-1)
            self.assertTrue(item[0] not in dct)
            del itms[j]

        with self.assertRaises(KeyError): dct.popitem()
예제 #13
0
    def test__values_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict(itms)

        values = [ t[1] for t in itms ]

        for x in dct._data.values():
            self.assertTrue(x in values)
            j = values.index(x)
            self.assertIs(x, values[j])
            values.remove(x)

        values = [ t[1] for t in itms ]

        for x in dct.values():
            self.assertTrue(x in values)
            j = values.index(x)
            self.assertIs(x, values[j])
            values.remove(x)
예제 #14
0
    def test__items_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)), ('k3', ('v3',)) )
        dct = dict_.Dict(itms)

        items = list(itms)

        for x in dct._data.items():
            self.assertTrue((x[0],x[1]) in items)
            j = items.index((x[0],x[1]))
            self.assertIs(x[0], items[j][0])
            self.assertIs(x[1], items[j][1])
            items.remove((x[0], x[1]))

        items = list(itms)

        for x in dct.items():
            self.assertTrue(x in items)
            j = items.index(x)
            self.assertIs(x[0], items[j][0])
            self.assertIs(x[1], items[j][1])
            items.remove(x)
예제 #15
0
    def test__repr_1(self):
        itms = ( ('k1', ('v1',)), ('k2', ('v2',)) )
        dct = dict_.Dict(itms)

        self.assertEqual(repr(dct), "Dict(%s)" % repr(dict(dct.items())))
예제 #16
0
 def test__getitem_1(self):
     itms = {'k1' : ('v1',), 'k2' : ('v2',), 'k3' : ('v3',) }
     dct = dict_.Dict(itms)
     self.assertIs(dct['k1'], itms['k1'])
     self.assertIs(dct['k2'], itms['k2'])
     self.assertIs(dct['k3'], itms['k3'])