def test_expired_entry(self): key = ("1-1", 1) default = "default" rev_info = "rev_info" rev_cache = RevCache() rev_cache._cache[key] = rev_info rev_cache._validate_entry = create_mock_full(return_value=False) # Call ntools.eq_(rev_cache.get(key, default=default), default) # Tests assert_these_calls(rev_cache._validate_entry, [call(rev_info)])
def test_with_no_free_up(self, verify_epoch): key1 = ("1-1", 1) key2 = ("1-2", 1) rev_info1 = self._create_rev_info(key1[0], key1[1], 1) rev_info2 = self._create_rev_info(key2[0], key2[1], 2) verify_epoch.return_value = ConnectedHashTree.EPOCH_OK rev_cache = RevCache(capacity=1) rev_cache._cache[key1] = rev_info1 rev_cache._validate_entry = create_mock_full(return_value=True) rev_cache.get = create_mock() rev_cache.get.return_value = None # Call ntools.assert_false(rev_cache.add(rev_info2)) # Tests ntools.assert_true(key1 in rev_cache._cache) assert_these_calls(verify_epoch, [call(rev_info2.p.epoch)]) assert_these_calls(rev_cache.get, [call(key2)])
def test_with_free_up(self, verify_epoch): key1 = ("1-1", 1) key2 = ("1-2", 1) rev_info1 = self._create_rev_info(key1[0], key1[1], 1) rev_info2 = self._create_rev_info(key2[0], key2[1], 2) verify_epoch.return_value = ConnectedHashTree.EPOCH_OK def validate_entry_side_effect(rev_info): del rev_cache._cache[(rev_info.isd_as(), rev_info.p.ifID)] return False rev_cache = RevCache(capacity=1) rev_cache._cache[key1] = rev_info1 rev_cache._validate_entry = create_mock() rev_cache._validate_entry.side_effect = validate_entry_side_effect rev_cache.get = create_mock() rev_cache.get.return_value = None # Call ntools.assert_true(rev_cache.add(rev_info2)) # Tests ntools.eq_(rev_cache._cache[key2], rev_info2) ntools.assert_true(key1 not in rev_cache._cache) assert_these_calls(verify_epoch, [call(rev_info2.p.epoch)]) assert_these_calls(rev_cache.get, [call(key2)])