diff -r 2dcc68c7d25b -r bd9d3a89f07b tests/test-lrucachedict.py --- a/tests/test-lrucachedict.py Thu Sep 06 11:40:20 2018 -0700 +++ b/tests/test-lrucachedict.py Wed Sep 05 23:15:20 2018 -0700 @@ -172,5 +172,30 @@ self.assertIn(key, d) self.assertEqual(d[key], 'v%s' % key) + def testpopoldest(self): + d = util.lrucachedict(4) + d['a'] = 'va' + d['b'] = 'vb' + + self.assertEqual(len(d), 2) + self.assertEqual(d.popoldest(), ('a', 'va')) + self.assertEqual(len(d), 1) + self.assertEqual(d.popoldest(), ('b', 'vb')) + self.assertEqual(len(d), 0) + self.assertIsNone(d.popoldest()) + + d['a'] = 'va' + d['b'] = 'vb' + d['c'] = 'vc' + d['d'] = 'vd' + + self.assertEqual(d.popoldest(), ('a', 'va')) + self.assertEqual(len(d), 3) + for key in ('b', 'c', 'd'): + self.assertEqual(d[key], 'v%s' % key) + + d['a'] = 'va' + self.assertEqual(d.popoldest(), ('b', 'vb')) + if __name__ == '__main__': silenttestrunner.main(__name__)