Example #1
0
    def test_misc_non_mutating(self):
        '''
        Misc non-mutating dict behaviors.

        - Superdict instances generally behave like normal dicts.
        '''
        sd = Superdict(a = 11, b = 22)

        # __contains__
        self.assertTrue('a' in sd)
        self.assertFalse('z' in sd)
        self.assertFalse('pop' in sd)

        # __len__
        aEq(len(sd), 2)

        # keys, values, items
        aEq(set(sd.keys()), set('ab'))
        aEq(set(sd.values()), set([11,22]))
        aEq(set(sd.items()), set([('a', 11), ('b', 22)]))

        # copy
        d = sd.copy()
        self.assertIs(type(d), dict)
        aEq(d, dict(sd))

        # equality
        aEq(sd, dict(a = 11, b = 22))