Exemple #1
0
 def test_incorrect_params(self):
     with pytest.raises(TypeError):
         cache.ttl_cache("cache", lambda: 1)
     with pytest.raises(TypeError):
         cache.ttl_cache(cache.FifoCache(4), "function")
     c = cache.ttl_cache(cache.FifoCache(10), lambda: 5)
     with pytest.raises(ValueError):
         c.put(1, ttl=2, expires=8)
 def test_naming(self):
     c = cache.ttl_cache(cache.FifoCache(4), lambda: 0)
     self.assertEqual(c.get.__name__, 'get')
     self.assertEqual(c.put.__name__, 'put')
     self.assertEqual(c.dump.__name__, 'dump')
     self.assertEqual(c.clear.__name__, 'clear')
     self.assertEqual(c.has.__name__, 'has')
Exemple #3
0
 def test_naming(self):
     c = cache.ttl_cache(cache.FifoCache(4), lambda: 0)
     assert c.get.__name__ == 'get'
     assert c.put.__name__ == 'put'
     assert c.dump.__name__ == 'dump'
     assert c.clear.__name__ == 'clear'
     assert c.has.__name__ == 'has'
 def test_inf_ttl(self):
     curr_time = 1
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(5), f_time)
     c.put(1)
     c.put(2)
     c.put(3)
     curr_time = 1000
     dump = c.dump()
     self.assertIn((1, np.infty), dump)
     self.assertIn((2, np.infty), dump)
     self.assertIn((3, np.infty), dump)
     c.put(1, ttl=100)
     curr_time = 2000
     dump = c.dump()
     self.assertEqual(len(dump), 3)
     self.assertIn((1, np.infty), dump)
     self.assertIn((2, np.infty), dump)
     self.assertIn((3, np.infty), dump)
     c.put(4, ttl=200)
     dump = c.dump()
     self.assertEqual(len(dump), 4)
     self.assertEqual(dump[0], (4, 2200))
     self.assertIn((1, np.infty), dump)
     self.assertIn((2, np.infty), dump)
     self.assertIn((3, np.infty), dump)
     curr_time = 3000
     dump = c.dump()
     self.assertEqual(len(dump), 3)
     self.assertIn((1, np.infty), dump)
     self.assertIn((2, np.infty), dump)
     self.assertIn((3, np.infty), dump)
Exemple #5
0
 def test_naming(self):
     c = cache.ttl_cache(cache.FifoCache(4), lambda: 0)
     assert c.get.__name__ == "get"
     assert c.put.__name__ == "put"
     assert c.dump.__name__ == "dump"
     assert c.clear.__name__ == "clear"
     assert c.has.__name__ == "has"
Exemple #6
0
    def test_inf_ttl(self):
        curr_time = 1

        def f_time():
            return curr_time

        c = cache.ttl_cache(cache.FifoCache(5), f_time)
        c.put(1)
        c.put(2)
        c.put(3)
        curr_time = 1000
        dump = c.dump()
        assert (1, np.infty) in dump
        assert (2, np.infty) in dump
        assert (3, np.infty) in dump
        c.put(1, ttl=100)
        curr_time = 2000
        dump = c.dump()
        assert len(dump) == 3
        assert (1, np.infty) in dump
        assert (2, np.infty) in dump
        assert (3, np.infty) in dump
        c.put(4, ttl=200)
        dump = c.dump()
        assert len(dump) == 4
        assert dump[0] == (4, 2200)
        assert (1, np.infty) in dump
        assert (2, np.infty) in dump
        assert (3, np.infty) in dump
        curr_time = 3000
        dump = c.dump()
        assert len(dump) == 3
        assert (1, np.infty) in dump
        assert (2, np.infty) in dump
        assert (3, np.infty) in dump
Exemple #7
0
 def test_naming(self):
     c = cache.insert_after_k_hits_cache(cache.FifoCache(3), k=3)
     assert c.get.__name__ == "get"
     assert c.put.__name__ == "put"
     assert c.dump.__name__ == "dump"
     assert c.clear.__name__ == "clear"
     assert len(c.get.__doc__) > 0
     assert len(c.put.__doc__) > 0
     assert len(c.dump.__doc__) > 0
     assert len(c.clear.__doc__) > 0
Exemple #8
0
 def test_naming(self):
     c = cache.insert_after_k_hits_cache(cache.FifoCache(3), k=3)
     assert c.get.__name__ == 'get'
     assert c.put.__name__ == 'put'
     assert c.dump.__name__ == 'dump'
     assert c.clear.__name__ == 'clear'
     assert len(c.get.__doc__) > 0
     assert len(c.put.__doc__) > 0
     assert len(c.dump.__doc__) > 0
     assert len(c.clear.__doc__) > 0
 def test_naming(self):
     c = cache.insert_after_k_hits_cache(cache.FifoCache(3), k=3)
     self.assertEqual(c.get.__name__, 'get')
     self.assertEqual(c.put.__name__, 'put')
     self.assertEqual(c.dump.__name__, 'dump')
     self.assertEqual(c.clear.__name__, 'clear')
     self.assertGreater(len(c.get.__doc__), 0)
     self.assertGreater(len(c.put.__doc__), 0)
     self.assertGreater(len(c.dump.__doc__), 0)
     self.assertGreater(len(c.clear.__doc__), 0)
 def test_naming(self):
     c = cache.keyval_cache(cache.FifoCache(3))
     self.assertEqual(c.get.__name__, 'get')
     self.assertEqual(c.put.__name__, 'put')
     self.assertEqual(c.dump.__name__, 'dump')
     self.assertEqual(c.clear.__name__, 'clear')
     self.assertGreater(len(c.get.__doc__), 0)
     self.assertGreater(len(c.put.__doc__), 0)
     self.assertGreater(len(c.dump.__doc__), 0)
     self.assertGreater(len(c.clear.__doc__), 0)
Exemple #11
0
 def test_eviction(self):
     curr_time = 0
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(3), f_time)
     assert c.put(1, ttl=4) is None
     assert c.put(2, ttl=6) is None
     assert c.put(3, ttl=8) is None
     assert c.put(4, ttl=10) == 1
     curr_time = 7
     assert c.put(5, ttl=12) is None
 def test_eviction(self):
     curr_time = 0
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(3), f_time)
     self.assertIsNone(c.put(1, ttl=4))
     self.assertIsNone(c.put(2, ttl=6))
     self.assertIsNone(c.put(3, ttl=8))
     self.assertEqual(c.put(4, ttl=10), 1)
     curr_time = 7
     self.assertIsNone(c.put(5, ttl=12))
Exemple #13
0
 def test_naming(self):
     c = cache.keyval_cache(cache.FifoCache(3))
     assert c.get.__name__ == 'get'
     assert c.put.__name__ == 'put'
     assert c.dump.__name__ == 'dump'
     assert c.clear.__name__ == 'clear'
     assert len(c.get.__doc__) > 0
     assert len(c.put.__doc__) > 0
     assert len(c.dump.__doc__) > 0
     assert len(c.clear.__doc__) > 0
Exemple #14
0
 def test_naming(self):
     c = cache.keyval_cache(cache.FifoCache(3))
     assert c.get.__name__ == "get"
     assert c.put.__name__ == "put"
     assert c.dump.__name__ == "dump"
     assert c.clear.__name__ == "clear"
     assert len(c.get.__doc__) > 0
     assert len(c.put.__doc__) > 0
     assert len(c.dump.__doc__) > 0
     assert len(c.clear.__doc__) > 0
Exemple #15
0
 def test_clear(self):
     curr_time = 1
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(3), f_time)
     c.put(1, ttl=4)
     c.put(2, ttl=5)
     c.put(1, ttl=8)
     c.put(3, ttl=3)
     c.put(4, ttl=1)
     c.clear()
     assert len(c) == 0
     assert c.dump() == []
 def test_clear(self):
     curr_time = 1
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(3), f_time)
     c.put(1, ttl=4)
     c.put(2, ttl=5)
     c.put(1, ttl=8)
     c.put(3, ttl=3)
     c.put(4, ttl=1)
     c.clear()
     self.assertEqual(len(c), 0)
     self.assertEqual(c.dump(), [])
 def test_remove(self):
     c = cache.FifoCache(4)
     c.put(1)
     c.put(2)
     c.put(3)
     c.remove(2)
     self.assertEqual(len(c), 2)
     self.assertEqual(c.dump(), [3, 1])
     c.put(4)
     c.put(5)
     self.assertEqual(c.dump(), [5, 4, 3, 1])
     c.remove(5)
     self.assertEqual(len(c), 3)
     self.assertEqual(c.dump(), [4, 3, 1])
Exemple #18
0
 def test_remove(self):
     c = cache.FifoCache(4)
     c.put(1)
     c.put(2)
     c.put(3)
     c.remove(2)
     assert len(c) == 2
     assert c.dump() == [3, 1]
     c.put(4)
     c.put(5)
     assert c.dump() == [5, 4, 3, 1]
     c.remove(5)
     assert len(c) == 3
     assert c.dump() == [4, 3, 1]
Exemple #19
0
 def test_get(self):
     curr_time = 1
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(3), f_time)
     c.put(1, ttl=2)
     assert c.get(1)
     assert not c.get(2)
     assert c.get(1)
     c.put(2, ttl=7)
     assert c.get(1)
     assert c.get(2)
     curr_time = 4
     assert not c.get(1)
     assert c.get(2)
     curr_time = 15
     assert not c.get(1)
     assert not c.get(2)
 def test_get(self):
     curr_time = 1
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(3), f_time)
     c.put(1, ttl=2)
     self.assertTrue(c.get(1))
     self.assertFalse(c.get(2))
     self.assertTrue(c.get(1))
     c.put(2, ttl=7)
     self.assertTrue(c.get(1))
     self.assertTrue(c.get(2))
     curr_time = 4
     self.assertFalse(c.get(1))
     self.assertTrue(c.get(2))
     curr_time = 15
     self.assertFalse(c.get(1))
     self.assertFalse(c.get(2))
 def test_key_val_cache(self):
     c = cache.keyval_cache(cache.FifoCache(3))
     c.put(1, 11)
     self.assertEqual(c.get(1), 11)
     c.put(1, 12)
     self.assertEqual(c.get(1), 12)
     self.assertEqual(c.dump(), [(1, 12)])
     c.put(2, 21)
     self.assertTrue(c.has(1))
     self.assertTrue(c.has(2))
     c.put(3, 31)
     k, v = c.put(4, 41)
     self.assertEqual(c.remove(2), 21)
     self.assertEqual(len(c), 2)
     self.assertEqual((k, v), (1, 12))
     c.clear()
     self.assertEqual(len(c), 0)
Exemple #22
0
 def test_key_val_cache(self):
     c = cache.keyval_cache(cache.FifoCache(3))
     c.put(1, 11)
     assert c.get(1) == 11
     c.put(1, 12)
     assert c.get(1) == 12
     assert c.dump() == [(1, 12)]
     c.put(2, 21)
     assert c.has(1)
     assert c.has(2)
     c.put(3, 31)
     k, v = c.put(4, 41)
     assert c.remove(2) == 21
     assert len(c) == 2
     assert (k, v) == (1, 12)
     c.clear()
     assert len(c) == 0
Exemple #23
0
 def test_key_val_cache(self):
     c = cache.keyval_cache(cache.FifoCache(3))
     c.put(1, 11)
     self.assertEqual(c.get(1), 11)
     c.put(1, 12)
     self.assertEqual(c.get(1), 12)
     self.assertEqual(c.dump(), [(1, 12)])
     c.put(2, 21)
     self.assertTrue(c.has(1))
     self.assertTrue(c.has(2))
     c.put(3, 31)
     k, v = c.put(4, 41)
     self.assertEqual((k, v), (1, 12))
     c.clear()
     self.assertEqual(len(c), 0)
     self.assertEqual(c.get.__name__, 'get')
     self.assertEqual(c.put.__name__, 'put')
     self.assertEqual(c.dump.__name__, 'dump')
     self.assertEqual(c.clear.__name__, 'clear')
Exemple #24
0
 def test_put_dump(self):
     curr_time = 1
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(4), f_time)
     c.put(1, ttl=2)
     c.put(2, ttl=5)
     c.put(3, ttl=3)
     assert c.dump() == [(3, 4), (2, 6), (1, 3)]
     assert c.has(1)
     assert c.has(2)
     assert c.has(3)
     curr_time = 4
     assert not c.has(1)
     assert c.has(2)
     assert c.has(3)
     assert c.dump() == [(3, 4), (2, 6)]
     c.put(3, ttl=6)
     assert c.dump() == [(3, 10), (2, 6)]
     curr_time = 11
     assert c.dump() == []
 def test_put_dump(self):
     curr_time = 1
     f_time = lambda: curr_time
     c = cache.ttl_cache(cache.FifoCache(4), f_time)
     c.put(1, ttl=2)
     c.put(2, ttl=5)
     c.put(3, ttl=3)
     self.assertEqual(c.dump(), [(3, 4), (2, 6), (1, 3)])
     self.assertTrue(c.has(1))
     self.assertTrue(c.has(2))
     self.assertTrue(c.has(3))
     curr_time = 4
     self.assertFalse(c.has(1))
     self.assertTrue(c.has(2))
     self.assertTrue(c.has(3))
     self.assertEqual(c.dump(), [(3, 4), (2, 6)])
     c.put(3, ttl=6)
     self.assertEqual(c.dump(), [(3, 10), (2, 6)])
     curr_time = 11
     self.assertEqual(c.dump(), [])
Exemple #26
0
 def test_do(self):
     c = cache.FifoCache(2)
     assert len(c) == 0
     c.do('PUT', 1)
     assert len(c) == 1
     c.do('UPDATE', 1)
     assert len(c) == 1
     assert c.do('GET', 1)
     c.do('PUT', 2)
     assert c.do('GET', 2)
     assert len(c) == 2
     assert c.dump() == [2, 1]
     c.do('PUT', 3)
     assert len(c) == 2
     assert c.dump() == [3, 2]
     assert c.do('GET', 2)
     assert c.do('GET', 3)
     assert not c.do('GET', 1)
     c.do('DELETE', 3)
     assert not c.do('GET', 3)
     assert c.dump() == [2]
     c.do('DELETE', 2)
     assert not c.do('GET', 2)
     assert c.dump() == []
Exemple #27
0
 def test_do(self):
     c = cache.FifoCache(2)
     assert len(c) == 0
     c.do("PUT", 1)
     assert len(c) == 1
     c.do("UPDATE", 1)
     assert len(c) == 1
     assert c.do("GET", 1)
     c.do("PUT", 2)
     assert c.do("GET", 2)
     assert len(c) == 2
     assert c.dump() == [2, 1]
     c.do("PUT", 3)
     assert len(c) == 2
     assert c.dump() == [3, 2]
     assert c.do("GET", 2)
     assert c.do("GET", 3)
     assert not c.do("GET", 1)
     c.do("DELETE", 3)
     assert not c.do("GET", 3)
     assert c.dump() == [2]
     c.do("DELETE", 2)
     assert not c.do("GET", 2)
     assert c.dump() == []
Exemple #28
0
 def test_fifo(self):
     c = cache.FifoCache(4)
     assert len(c) == 0
     c.put(1)
     assert len(c) == 1
     c.put(2)
     assert len(c) == 2
     c.put(3)
     assert len(c) == 3
     c.put(4)
     assert len(c) == 4
     assert c.dump() == [4, 3, 2, 1]
     c.put(5)
     assert len(c) == 4
     assert c.dump() == [5, 4, 3, 2]
     c.get(2)
     assert c.dump() == [5, 4, 3, 2]
     c.get(4)
     assert c.dump() == [5, 4, 3, 2]
     c.put(6)
     assert c.dump() == [6, 5, 4, 3]
     c.clear()
     assert len(c) == 0
     assert c.dump() == []
 def test_fifo(self):
     c = cache.FifoCache(4)
     self.assertEquals(len(c), 0)
     c.put(1)
     self.assertEquals(len(c), 1)
     c.put(2)
     self.assertEquals(len(c), 2)
     c.put(3)
     self.assertEquals(len(c), 3)
     c.put(4)
     self.assertEquals(len(c), 4)
     self.assertEquals(c.dump(), [4, 3, 2, 1])
     c.put(5)
     self.assertEquals(len(c), 4)
     self.assertEquals(c.dump(), [5, 4, 3, 2])
     c.get(2)
     self.assertEquals(c.dump(), [5, 4, 3, 2])
     c.get(4)
     self.assertEquals(c.dump(), [5, 4, 3, 2])
     c.put(6)
     self.assertEquals(c.dump(), [6, 5, 4, 3])
     c.clear()
     self.assertEquals(len(c), 0)
     self.assertEquals(c.dump(), [])
 def test_do(self):
     c = cache.FifoCache(2)
     self.assertEquals(len(c), 0)
     c.do('PUT', 1)
     self.assertEquals(len(c), 1)
     c.do('UPDATE', 1)
     self.assertEquals(len(c), 1)
     self.assertTrue(c.do('GET', 1))
     c.do('PUT', 2)
     self.assertTrue(c.do('GET', 2))
     self.assertEquals(len(c), 2)
     self.assertEquals(c.dump(), [2, 1])
     c.do('PUT', 3)
     self.assertEquals(len(c), 2)
     self.assertEquals(c.dump(), [3, 2])
     self.assertTrue(c.do('GET', 2))
     self.assertTrue(c.do('GET', 3))
     self.assertFalse(c.do('GET', 1))
     c.do('DELETE', 3)
     self.assertFalse(c.do('GET', 3))
     self.assertEquals(c.dump(), [2])
     c.do('DELETE', 2)
     self.assertFalse(c.do('GET', 2))
     self.assertEquals(c.dump(), [])