170 # Original should remain unchanged. |
170 # Original should remain unchanged. |
171 for key in ('a', 'b', 'c', 'd'): |
171 for key in ('a', 'b', 'c', 'd'): |
172 self.assertIn(key, d) |
172 self.assertIn(key, d) |
173 self.assertEqual(d[key], 'v%s' % key) |
173 self.assertEqual(d[key], 'v%s' % key) |
174 |
174 |
|
175 def testpopoldest(self): |
|
176 d = util.lrucachedict(4) |
|
177 d['a'] = 'va' |
|
178 d['b'] = 'vb' |
|
179 |
|
180 self.assertEqual(len(d), 2) |
|
181 self.assertEqual(d.popoldest(), ('a', 'va')) |
|
182 self.assertEqual(len(d), 1) |
|
183 self.assertEqual(d.popoldest(), ('b', 'vb')) |
|
184 self.assertEqual(len(d), 0) |
|
185 self.assertIsNone(d.popoldest()) |
|
186 |
|
187 d['a'] = 'va' |
|
188 d['b'] = 'vb' |
|
189 d['c'] = 'vc' |
|
190 d['d'] = 'vd' |
|
191 |
|
192 self.assertEqual(d.popoldest(), ('a', 'va')) |
|
193 self.assertEqual(len(d), 3) |
|
194 for key in ('b', 'c', 'd'): |
|
195 self.assertEqual(d[key], 'v%s' % key) |
|
196 |
|
197 d['a'] = 'va' |
|
198 self.assertEqual(d.popoldest(), ('b', 'vb')) |
|
199 |
175 if __name__ == '__main__': |
200 if __name__ == '__main__': |
176 silenttestrunner.main(__name__) |
201 silenttestrunner.main(__name__) |