class ExpireTestCase(unittest.TestCase): def setUp(self): self.cache = Cache() def test_timer_001(self): """Must delete items after timeout.""" self.cache.set('key-timer_001', "value", DEFAULT_TIMEOUT / 2) eventlet.sleep(DEFAULT_TIMEOUT) self.assertFalse('key-timer_001' in self.cache) def test_race_001(self): """Expiry must not conflict with regular `del`.""" self.cache.set('key-delete_race_001', "value", DEFAULT_TIMEOUT / 2) del self.cache['key-delete_race_001'] eventlet.sleep(DEFAULT_TIMEOUT) self.assertFalse('key-delete_race_001' in self.cache) def test_race_002(self): """Expiry must not conflict with regular `pop`.""" self.cache.set('key-delete_race_002', "value", DEFAULT_TIMEOUT / 2) self.cache.pop('key-delete_race_002') eventlet.sleep(DEFAULT_TIMEOUT) self.assertFalse('key-delete_race_002' in self.cache) def test_race_003(self): """Expiry must not conflict with regular `del` in another thread.""" self.cache.set('key-delete_race_003', "value", DEFAULT_TIMEOUT / 2) eventlet.spawn_n(self.cache.__delitem__, 'key-delete_race_003') eventlet.sleep(DEFAULT_TIMEOUT) self.assertFalse('key-delete_race_003' in self.cache) def test_race_004(self): """Expiry must not conflict with regular `pop` in another thread.""" self.cache.set('key-delete_race_004', "value", DEFAULT_TIMEOUT / 2) eventlet.spawn_n(self.cache.pop, 'key-delete_race_004') eventlet.sleep(DEFAULT_TIMEOUT) self.assertFalse('key-delete_race_004' in self.cache)