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))