39
34
self.assertEqual(2, c.get(1))
40
35
self.assertEqual(2, c.get(1, None))
41
36
self.assertEqual([1], list(c))
42
self.assertEqual({1}, viewkeys(c))
43
self.assertEqual([(1, 2)], sorted(viewitems(c)))
44
self.assertEqual([2], sorted(viewvalues(c)))
37
self.assertEqual({1}, c.keys())
38
self.assertEqual([(1, 2)], sorted(c.items()))
39
self.assertEqual([2], sorted(c.values()))
45
40
self.assertEqual({1: 2}, c)
47
42
def test_cache_size(self):
58
53
self.assertEqual(None, c.get(1))
59
54
self.assertEqual(None, c.get(1, None))
60
55
self.assertEqual([], list(c))
61
self.assertEqual(set(), viewkeys(c))
62
self.assertEqual([], list(viewitems(c)))
63
self.assertEqual([], list(viewvalues(c)))
56
self.assertEqual(set(), c.keys())
57
self.assertEqual([], list(c.items()))
58
self.assertEqual([], list(c.values()))
64
59
self.assertEqual({}, c)
66
61
def test_add_maintains_fifo(self):
72
self.assertEqual({1, 2, 3, 4}, viewkeys(c))
67
self.assertEqual({1, 2, 3, 4}, c.keys())
74
69
# This should pop out the oldest entry
75
self.assertEqual({2, 3, 4, 5}, viewkeys(c))
70
self.assertEqual({2, 3, 4, 5}, c.keys())
76
71
# Replacing an item doesn't change the stored keys
78
self.assertEqual({2, 3, 4, 5}, viewkeys(c))
73
self.assertEqual({2, 3, 4, 5}, c.keys())
79
74
# But it does change the position in the FIFO
81
self.assertEqual({2, 4, 5, 6}, viewkeys(c))
76
self.assertEqual({2, 4, 5, 6}, c.keys())
82
77
self.assertEqual([4, 5, 2, 6], list(c._queue))
84
79
def test_default_after_cleanup_count(self):
92
87
# So far, everything fits
93
self.assertEqual({1, 2, 3, 4, 5}, viewkeys(c))
88
self.assertEqual({1, 2, 3, 4, 5}, c.keys())
95
90
# But adding one more should shrink down to after_cleanup_count
96
self.assertEqual({3, 4, 5, 6}, viewkeys(c))
91
self.assertEqual({3, 4, 5, 6}, c.keys())
98
93
def test_clear(self):
99
94
c = fifo_cache.FIFOCache(5)
106
self.assertEqual({2, 3, 4, 5}, viewkeys(c))
101
self.assertEqual({2, 3, 4, 5}, c.keys())
108
self.assertEqual(set(), viewkeys(c))
103
self.assertEqual(set(), c.keys())
109
104
self.assertEqual([], list(c._queue))
110
105
self.assertEqual({}, c)
250
245
self.assertEqual('2', c.get(1))
251
246
self.assertEqual('2', c.get(1, None))
252
247
self.assertEqual([1], list(c))
253
self.assertEqual({1}, viewkeys(c))
254
self.assertEqual([(1, '2')], sorted(viewitems(c)))
255
self.assertEqual(['2'], sorted(viewvalues(c)))
248
self.assertEqual({1}, c.keys())
249
self.assertEqual([(1, '2')], sorted(c.items()))
250
self.assertEqual(['2'], sorted(c.values()))
256
251
self.assertEqual({1: '2'}, c)
257
252
self.assertEqual(1024 * 1024, c.cache_size())
264
259
self.assertEqual(None, c.get(1))
265
260
self.assertEqual(None, c.get(1, None))
266
261
self.assertEqual([], list(c))
267
self.assertEqual(set(), viewkeys(c))
268
self.assertEqual([], list(viewitems(c)))
269
self.assertEqual([], list(viewvalues(c)))
262
self.assertEqual(set(), c.keys())
263
self.assertEqual([], list(c.items()))
264
self.assertEqual([], list(c.values()))
270
265
self.assertEqual({}, c)
272
267
def test_add_maintains_fifo(self):