Пример #1
0
 def test_lazy_setdefault(self):
     d = LazyDict()
     self.assertIs(d.setdefault("key0"), None)
     d.set_stub("key0", lambda x: "value0")
     self.assertIs(d.setdefault("key0"), "value0")
     d.set_stub("key0", lambda x: "value0")
     self.assertEqual(d.setdefault("key1", "value1"), "value1")
     self.assertEqual(d["key1"], "value1")
     self.assertEqual(d.setdefault("key0", "value2"), "value0")
Пример #2
0
 def test_lazy_setdefault(self):
     d = LazyDict()
     self.assertIs(d.setdefault('key0'), None)
     d.set_stub('key0', lambda x:'value0')
     self.assertIs(d.setdefault('key0'), 'value0')
     d.set_stub('key0', lambda x:'value0')
     self.assertEqual(d.setdefault('key1', 'value1'), 'value1')
     self.assertEqual(d['key1'], 'value1')
     self.assertEqual(d.setdefault('key0', 'value2'), 'value0')
Пример #3
0
 def test_lazy_setdefault(self):
     d = LazyDict()
     self.assertIs(d.setdefault('key0'), None)
     d.set_stub('key0', lambda x: 'value0')
     self.assertIs(d.setdefault('key0'), 'value0')
     d.set_stub('key0', lambda x: 'value0')
     self.assertEqual(d.setdefault('key1', 'value1'), 'value1')
     self.assertEqual(d['key1'], 'value1')
     self.assertEqual(d.setdefault('key0', 'value2'), 'value0')
Пример #4
0
    def test_setdefault(self):
        # dict.setdefault()
        d = LazyDict()
        self.assertIs(d.setdefault("key0"), None)
        d.setdefault("key0", [])
        self.assertIs(d.setdefault("key0"), None)
        d.setdefault("key", []).append(3)
        self.assertEqual(d["key"][0], 3)
        d.setdefault("key", []).append(4)
        self.assertEqual(len(d["key"]), 2)
        self.assertRaises(TypeError, d.setdefault)

        class Exc(Exception):
            pass

        class BadHash:
            fail = False

            def __hash__(self):
                if self.fail:
                    raise Exc()
                else:
                    return 42

        x = BadHash()
        d[x] = 42
        x.fail = True
        self.assertRaises(Exc, d.setdefault, x, [])
Пример #5
0
    def test_setdefault(self):
        # dict.setdefault()
        d = LazyDict()
        self.assertIs(d.setdefault('key0'), None)
        d.setdefault('key0', [])
        self.assertIs(d.setdefault('key0'), None)
        d.setdefault('key', []).append(3)
        self.assertEqual(d['key'][0], 3)
        d.setdefault('key', []).append(4)
        self.assertEqual(len(d['key']), 2)
        self.assertRaises(TypeError, d.setdefault)

        class Exc(Exception): pass

        class BadHash(object):
            fail = False
            def __hash__(self):
                if self.fail:
                    raise Exc()
                else:
                    return 42

        x = BadHash()
        d[x] = 42
        x.fail = True
        self.assertRaises(Exc, d.setdefault, x, [])