def testPurge(self):
        timedDict = TimedDictionary(TWO_HOURS)
        timedDict[1] = SomeObject('id1')
        timedDict[2] = SomeObject('id2')
        timedDict._now = lambda : time() + ONE_HOUR
        self.assertEquals([1, 2], timedDict._expirationOrder)

        timedDict[3] = SomeObject('id3')
        timedDict.touch(2)
        timedDict._now = lambda : time() + TWO_HOURS
        timedDict.purge()
        self.assertEquals([3, 2], timedDict._expirationOrder)
        timedDict._now = lambda : time() + TWO_HOURS + TWO_HOURS
        timedDict.purge()
        self.assertEquals([], timedDict._expirationOrder)
    def testPurge(self):
        timedDict = TimedDictionary(TWO_HOURS)
        timedDict[1] = SomeObject('id1')
        timedDict[2] = SomeObject('id2')
        timedDict._now = lambda: time() + ONE_HOUR
        self.assertEqual([1, 2], timedDict._expirationOrder)

        timedDict[3] = SomeObject('id3')
        timedDict.touch(2)
        timedDict._now = lambda: time() + TWO_HOURS
        timedDict.purge()
        self.assertEqual([3, 2], timedDict._expirationOrder)
        timedDict._now = lambda: time() + TWO_HOURS + TWO_HOURS
        timedDict.purge()
        self.assertEqual([], timedDict._expirationOrder)
 def testExpiredLeastRecentlyUsedGracefullyDealtWith(self):
     timedDict = TimedDictionary(TWO_HOURS, lruMaxSize=2)
     timedDict['key1'] = 'five'
     timedDict['key2'] = 'six'
     timedDict['key3'] = 'seven'
     self.assertEquals(set(['key2', 'key3']), set(timedDict.keys()), set(timedDict.keys()))
     self.assertEquals(3, len(timedDict._times))
     self.assertEquals(3, len(timedDict._expirationOrder))
     timedDict.purge()
     self.assertEquals(2, len(timedDict._times))
     self.assertEquals(2, len(timedDict._expirationOrder))
     timedDict._now = lambda : time() + TWO_HOURS
     timedDict.purge()
     self.assertEquals([], list(timedDict.keys()))
     self.assertEquals(0, len(timedDict._times))
     self.assertEquals(0, len(timedDict._expirationOrder))
 def testExpiredLeastRecentlyUsedGracefullyDealtWith(self):
     timedDict = TimedDictionary(TWO_HOURS, lruMaxSize=2)
     timedDict['key1'] = 'five'
     timedDict['key2'] = 'six'
     timedDict['key3'] = 'seven'
     self.assertEqual(set(['key2', 'key3']), set(timedDict.keys()),
                      set(timedDict.keys()))
     self.assertEqual(3, len(timedDict._times))
     self.assertEqual(3, len(timedDict._expirationOrder))
     timedDict.purge()
     self.assertEqual(2, len(timedDict._times))
     self.assertEqual(2, len(timedDict._expirationOrder))
     timedDict._now = lambda: time() + TWO_HOURS
     timedDict.purge()
     self.assertEqual([], list(timedDict.keys()))
     self.assertEqual(0, len(timedDict._times))
     self.assertEqual(0, len(timedDict._expirationOrder))