def test_keys(self): d = LazyDict() self.assertEqual(set(d.keys()), set()) d = LazyDict({'a': 1, 'b': 2}) k = d.keys() self.assertTrue('a' in d) self.assertTrue('b' in d) self.assertEqual(set(k), {'a','b'}) self.assertRaises(TypeError, d.keys, None)
def test_lazy_clear(self): d = LazyDict({1:1, 2:2, 3:3}) d.set_stub(4, lambda x:x) d.clear() self.assertEqual(d, {}) self.assertEqual(set(d.keys()), set()) self.assertEqual(set(d.values()), set()) self.assertRaises(TypeError, d.clear, None)
def test_lazy_keys(self): def resolver(id): p = {'b': 2, 'c': 3} return p[id] d = LazyDict({'a': 1}) d.set_stub('b', resolver) d.set_stub('c', resolver) d['d'] = 4 k = d.keys() self.assertTrue('a' in d) self.assertTrue('b' in d) self.assertTrue('c' in d) self.assertTrue('d' in d) self.assertEqual(set(k), {'a','b','c','d'})