tests/test-lrucachedict.py
changeset 39582 bd9d3a89f07b
parent 39581 2dcc68c7d25b
child 39583 ee087f0d7db5
equal deleted inserted replaced
39581:2dcc68c7d25b 39582:bd9d3a89f07b
   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__)