Esempio n. 1
0
    def test_get_deletes_expired_key(self):

        key1, expected1 = 'key1', 'value1'
        key2, expected2 = 'key2', 'value2'
        key3, expected3 = 'key3', 'value3'

        c = Cache()
        c.set(key1, expected1, 0.03)
        c.set(key2, expected2)
        c.set(key3, expected3, 0.05)

        sleep(0.12)

        self.assertRaises(KeyExpiredError, c.get, key1)
        self.assertRaises(KeyExpiredError, c.get, key3)

        self.assertEquals(len(c), 1)
        self.assertNotIn(key1, c)
        self.assertIn(key2, c)
        self.assertNotIn(key3, c)

        # It will be arranged in the same order as .get were called in
        self.assertListEqual(c._expired_on_op, [key1, key3])

        deleted = c.delete_expired()
        self.assertEquals(sorted(deleted), [key1, key3])
        self.assertListEqual(c._expired_on_op, [])
Esempio n. 2
0
    def test_set_already_exists_extend_expiry_on_set_false(self):

        key1, expected1 = 'key1', 'value1'
        expected1_new = 'value1_new'

        c = Cache(extend_expiry_on_set=False)
        c.set(key1, expected1, 0.1)
        sleep(0.11)

        self.assertRaises(KeyExpiredError, c.set, key1, expected1_new)
        self.assertEquals(len(c), 0)
        self.assertListEqual(c._expired_on_op, [key1])

        deleted = c.delete_expired()
        self.assertEquals(sorted(deleted), [key1])
        self.assertListEqual(c._expired_on_op, [])
Esempio n. 3
0
    def test_delete_expired(self):

        key1, expected1 = 'key1', 'value1'
        key2, expected2 = 'key2', 'value2'
        key3, expected3 = 'key3', 'value3'

        c = Cache()
        c.set(key1, expected1, 0.1)
        c.set(key2, expected2)
        c.set(key3, expected3, 0.03)

        sleep(0.12)

        deleted = c.delete_expired()
        self.assertEquals(sorted(deleted), [key1, key3])

        self.assertEquals(len(c), 1)
        self.assertNotIn(key1, c)
        self.assertIn(key2, c)
        self.assertNotIn(key3, c)