Exemple #1
0
class LRUTestCase(unittest.TestCase):
    def setUp(self):
        """Call before every test case."""
        # self.file = open( "blah", "r" )

    def tearDown(self):
        """Call after every test case."""
        # self.file.close()

    def testA(self):
        """Test case A. note that all test method names must begin with 'test.'"""
        self.cache = LRUCache(capacity=2)
        self.cache.put(key=2, value=2)
        self.cache.put(key=3, value=3)
        self.cache.put(key=4, value=3)
        self.assertEqual(len(self.cache), 2, "cache size not correct")
        # assert self.cache.size() == 2, "exepected value is 2"

    def testB(self):
        """test case B"""
        self.cache = LRUCache(capacity=2)
        self.cache.put(key=2, value=2)
        self.cache.put(key=3, value=3)
        self.cache.put(key=4, value=3)
        self.assertEqual(self.cache.get(key=2), -1)

    def testC(self):
        """test case C"""
Exemple #2
0
    def test_set_item_expired(self):
        for storage_name, storage in self._build_storages():
            cache = LRUCache(storage=storage)
            with self.subTest(scenario=storage_name):
                cache.put(key='abc',
                          data={'my_data': 'a'},
                          expires_in=timedelta(seconds=1))

                # Make sure not expired yet
                self.assertEqual(cache['abc'], {'my_data': 'a'})

                # Check expires
                sleep(1.1)
                with self.assertRaises(ItemExpired):
                    cache['abc']
                self.assertEqual(cache.total_size_stored, 0)
Exemple #3
0
 def test_clean_expired(self):
     for storage_name, storage in self._build_storages():
         cache = LRUCache(storage=storage, sizeof=lambda i: 1)
         with self.subTest(scenario=storage_name):
             cache.put(key='abc',
                       data={'my_data': 'a'},
                       expires_in=timedelta(seconds=1))
             cache.put(key='def',
                       data={'my_data': 'a'},
                       expires_in=timedelta(seconds=1))
             cache.put(key='ghi',
                       data={'my_data': 'a'},
                       expires_in=timedelta(days=1))
             cache.put(key='jkl', data={'my_data': 'a'})
             self.assertEqual(cache.total_size_stored, 4)
             sleep(1.1)
             cache.clean_expired()
             self.assertEqual(cache.total_size_stored, 2)
Exemple #4
0
def timer(queue_type):
    cache = LRUCache(SIZE, queue_constructor=queue_type)
    simple_initial_time = time.time()
    for i in range(SIZE * 10):
        cache.put(i, 'value {}'.format(i))
    return time.time() - simple_initial_time