Exemple #1
0
    def __init__(self, edrserver):
        self.server = edrserver
        self._player = EDPlayerOne()
        self.heartbeat_timestamp = None

        edr_config = EDRConfig()
        self._edr_heartbeat = edr_config.edr_heartbeat()

        try:
            with open(self.EDR_CMDRS_CACHE, 'rb') as handle:
                self.cmdrs_cache = pickle.load(handle)
        except:
            self.cmdrs_cache = LRUCache(edr_config.lru_max_size(),
                                        edr_config.cmdrs_max_age())

        try:
            with open(self.EDR_INARA_CACHE, 'rb') as handle:
                self.inara_cache = pickle.load(handle)
        except:
            self.inara_cache = LRUCache(edr_config.lru_max_size(),
                                        edr_config.inara_max_age())

        try:
            with open(self.EDR_SQDRDEX_CACHE, 'rb') as handle:
                self.sqdrdex_cache = pickle.load(handle)
        except:
            self.sqdrdex_cache = LRUCache(edr_config.lru_max_size(),
                                          edr_config.sqdrdex_max_age())
Exemple #2
0
    def test_get(self):
        c = LRUCache(3)
        c.put(4, 2)
        c.put(1, 1)
        c.put(2, 3)

        # get the first key
        self.assertEqual(c.get(2), 3)
        self.assertEqual(c.cache(), {2: 3, 1: 1, 4: 2})
        self.assertEqual(c.size(), 3)

        # get the second key
        self.assertEqual(c.get(1), 1)
        self.assertEqual(c.cache(), {1: 1, 2: 3, 4: 2})
        self.assertEqual(c.size(), 3)

        # get the last key
        self.assertEqual(c.get(4), 2)
        self.assertEqual(c.cache(), {4: 2, 2: 3, 1: 1})
        self.assertEqual(c.size(), 3)

        # get a non-existing key
        self.assertEqual(c.get(40), -1)
        self.assertEqual(c.cache(), {4: 2, 2: 3, 1: 1})
        self.assertEqual(c.size(), 3)
Exemple #3
0
def test_removing_item_from_cache():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 7
    lru_cache[40] = 9
    del lru_cache[10]
    assert list(lru_cache) == [(40, 9), (20, 7)]
Exemple #4
0
def test_getting_last_item_2():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 7
    lru_cache[40] = 9
    assert lru_cache[10] == 5
    assert list(lru_cache) == [(10, 5), (40, 9), (20, 7)]
Exemple #5
0
def test_getting_middle_item():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 7
    lru_cache[40] = 9
    assert lru_cache[20] == 7
    assert list(lru_cache) == [(20, 7), (40, 9), (10, 5)]
Exemple #6
0
def test_adding_single_item_to_full_cache():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 5
    lru_cache[40] = 7
    lru_cache[50] = 9
    assert list(lru_cache) == [(50, 9), (40, 7), (20, 5)]
Exemple #7
0
def test_updating_item():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 7
    lru_cache[40] = 9
    lru_cache[20] = 10
    assert list(lru_cache) == [(20, 10), (40, 9), (10, 5)]
Exemple #8
0
 def test_keys_appended_to_lru_cache_are_in_correct_order_after_get(self):
     context = LRUCache(capacity=5)
     context.set("Michael", "Jordan")
     context.set("Scotty", "Pippen")
     context.get("Michael")
     expected = OrderedDict([("Scotty", "Pippen"), ("Michael", "Jordan")])
     assert context.cache == expected
Exemple #9
0
 def test_reset(self):
     cache = LRUCache(3,60)
     cache.set("a", 34)
     cache.reset()
     self.assertEqual(cache.keys(), [])
     self.assertEqual(cache.values(), [])
     self.assertEqual(cache.last_updated, None)
Exemple #10
0
 def test_lru_item_is_removed_from_cache(self):
     context = LRUCache(capacity=2)
     context.set("Michael", "Jordan")
     context.set("Scotty", "Pippen")
     context.set("Dennis", "Rodman")
     expected = OrderedDict([("Scotty", "Pippen"), ("Dennis", "Rodman")])
     assert context.cache == expected
    def __init__(self, cache_dir,
            cache_size_unblock=4096, cache_size_block=8192):
        """Cache for block test result.

        Two caches for block/unblock are used, so we can set different
        cache size for blocked or unblocked url cache.
        """
        self.save_trigger = 64
        self.cache_dir = cache_dir
        self.cache_filename_unblock = os.path.join(cache_dir,
                self.filename_unblock)
        self.cache_filename_block = os.path.join(cache_dir, self.filename_block)

        from lrucache import LRUCache
        self.cache_unblock = LRUCache(cache_size_unblock)
        self.cache_block = LRUCache(cache_size_block)
Exemple #12
0
 def test_lru_remember_everything(self):
     cache = LRUCache(5)
     cache[1] = '1'
     cache[2] = '2'
     cache[3] = '3'
     self.assertEqual("[(1, '1'), (2, '2'), (3, '3')]", str(cache))
     self.assertEqual(3, len(cache))
Exemple #13
0
def test_add_item_after_removing():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 7
    lru_cache[40] = 9
    del lru_cache[10]
    lru_cache[50] = 11
    assert list(lru_cache) == [(50, 11), (40, 9), (20, 7)]
Exemple #14
0
 def test_lru_keep_fresh(self):
     cache = LRUCache(3)
     cache[1] = '1'
     cache[2] = '2'
     cache[3] = '3'
     cache[4] = '4'
     self.assertEqual("[(2, '2'), (3, '3'), (4, '4')]", str(cache))
     self.assertEqual(3, len(cache))
Exemple #15
0
 def test_clean(self):
     cache = LRUCache(3)
     cache[1] = '1'
     cache[2] = '2'
     cache[3] = '3'
     self.assertEqual(3, len(cache))
     cache.clean()
     self.assertEqual(0, len(cache))
Exemple #16
0
def test_adding_multiple_items_to_full_cache():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 5
    lru_cache[40] = 7
    lru_cache[50] = 9
    lru_cache[60] = 11
    assert list(lru_cache) == [(60, 11), (50, 9), (40, 7)]
Exemple #17
0
 def test_read_counter_is_reset_when_read_limit_reached(self):
     context = LRUCache(capacity=1)
     context.set("Michael", "Jordan")
     for _ in range(11):
         context.get("Michael")
     context.set("Michael", "Jordan")
     context.get("Michael")
     assert context.get("Michael") == OrderedDict([("Michael", "Jordan")])
 def test_instanciation_with_timeout_5sec(self):
     cache = LRUCache(5, 5)
     cache.put('first', 'first')
     cache.put('second', 'second')
     self.assertEqual(len(cache.keys()), 2)
     time.sleep(7)
     self.assertEqual(len(cache.keys()), 0)
     cache.stop_timer()
Exemple #19
0
 def test_key_is_removed_from_lru_cache_after_accessed_10_times(self):
     context = LRUCache(capacity=5)
     context.set("Michael", "Jordan")
     context.set("Scotty", "Pippen")
     for _ in range(11):
         context.get("Michael")
     expected = OrderedDict([("Scotty", "Pippen")])
     assert context.cache == expected
Exemple #20
0
 def test_stale(self):
     cache = LRUCache(5, 1)
     sample = {"test": True, "foo": "bar"}
     key = "a"
     cache.set(key, sample)
     self.assertFalse(cache.is_stale(key))
     time.sleep(1.2)
     self.assertTrue(cache.is_stale(key))
     self.assertEqual(cache.get("a"), None)
Exemple #21
0
def test_add_multiple_items_after_removing():
    lru_cache = LRUCache(capacity=3)
    lru_cache[10] = 5
    lru_cache[20] = 7
    lru_cache[40] = 9
    del lru_cache[10]
    lru_cache[50] = 11
    lru_cache[60] = 13
    assert list(lru_cache) == [(60, 13), (50, 11), (40, 9)]
Exemple #22
0
 def test_set_move_front(self):
     cache = LRUCache(2)
     cache.set('foo', 10)
     cache.set('bar', 20)
     cache.set('foo', 40)
     cache.set('baz', 30)
     self.assertEqual(cache.get('foo'), 40)
     self.assertEqual(cache.get('bar'), None)
     self.assertEqual(cache.get('baz'), 30)
Exemple #23
0
    def __init__(self):
        edr_config = EDRConfig()

        try:
            with open(self.EDR_FACTIONS_CACHE, 'rb') as handle:
                self.factions_cache = pickle.load(handle)
        except:
            self.factions_cache = LRUCache(edr_config.lru_max_size(),
                                           edr_config.factions_max_age())
Exemple #24
0
 def test_del_element(self):
     cache = LRUCache(4)
     cache[1] = '1'
     cache[2] = '2'
     cache[3] = '3'
     cache[4] = '4'
     del cache[3]
     self.assertEqual("[(1, '1'), (2, '2'), (4, '4')]", str(cache))
     self.assertEqual(3, len(cache))
Exemple #25
0
    def test_reset(self):
        c = LRUCache(3)
        c.put(4, 2)
        c.put(1, 1)
        c.put(2, 3)

        # after reset, nothing existing in the cache
        c.reset()
        self.assertEqual(c.size(), 0)
        self.assertEqual(c.cache(), {})
Exemple #26
0
 def test_pop_element(self):
     cache = LRUCache(3)
     cache[1] = '1'
     cache[2] = '2'
     cache[3] = '3'
     self.assertEqual("[(1, '1'), (2, '2'), (3, '3')]", str(cache))
     self.assertEqual('1', cache.pop(1))
     self.assertEqual("[(2, '2'), (3, '3')]", str(cache))
     self.assertEqual(2, len(cache))
     self.assertRaises(KeyError, cache.pop, 1)
Exemple #27
0
 def test_get_element(self):
     cache = LRUCache(3)
     cache[1] = '1'
     cache[2] = '2'
     cache[3] = '3'
     self.assertEqual('test', cache.get(11, 'test'))
     self.assertEqual("[(1, '1'), (2, '2'), (3, '3')]", str(cache))
     self.assertEqual('1', cache.get(1, 'test'))
     self.assertEqual("[(2, '2'), (3, '3'), (1, '1')]", str(cache))
     self.assertEqual(3, len(cache))
Exemple #28
0
    def test_lru_fresh_on_access(self):
        cache = LRUCache(3)
        cache[1] = '1'
        cache[2] = '2'
        cache[3] = '3'

        # Just access to first element.
        _ = cache[1]
        self.assertEqual("[(2, '2'), (3, '3'), (1, '1')]", str(cache))
        self.assertEqual(3, len(cache))
 def test_instanciation_without_timeout(self):
     cache = LRUCache(5)
     cache.put('1', '2')
     cache.put('2', '3')
     cache.put('3', '4')
     cache.put('4', '5')
     cache.put('first', 'value')
     self.assertEqual(cache.get('1'), '2')
     self.assertEqual(cache.get('2'), '3')
     self.assertEqual(cache.get('3'), '4')
     self.assertEqual(cache.get('4'), '5')
     self.assertEqual(cache.get('5'), -1)
Exemple #30
0
    def test_get_dict_copy_and_keys(self):
        cache = LRUCache(3)
        cache[1] = '1'
        cache[2] = '2'
        cache[3] = '3'
        self.assertEqual({1: '1', 2: '2', 3: '3'}, cache.dict_copy())
        keys = cache.keys()

        # Sort keys to make sure they are in the same order on all platforms.
        keys.sort()
        self.assertEqual([1, 2, 3], keys)
        self.assertEqual(3, len(cache))