fix tests

This commit is contained in:
Jack Robison 2020-12-03 21:04:31 -05:00
parent d02ff232e5
commit 3467d1fed0
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2
5 changed files with 13 additions and 6 deletions

View file

@ -340,6 +340,7 @@ class CommandTestCase(IntegrationTestCase):
server_tmp_dir = tempfile.mkdtemp() server_tmp_dir = tempfile.mkdtemp()
self.addCleanup(shutil.rmtree, server_tmp_dir) self.addCleanup(shutil.rmtree, server_tmp_dir)
self.server_config = Config() self.server_config = Config()
self.server_config.transaction_cache_size = 10000
self.server_storage = SQLiteStorage(self.server_config, ':memory:') self.server_storage = SQLiteStorage(self.server_config, ':memory:')
await self.server_storage.open() await self.server_storage.open()
@ -389,6 +390,7 @@ class CommandTestCase(IntegrationTestCase):
conf.fixed_peers = [('127.0.0.1', 5567)] conf.fixed_peers = [('127.0.0.1', 5567)]
conf.known_dht_nodes = [] conf.known_dht_nodes = []
conf.blob_lru_cache_size = self.blob_lru_cache_size conf.blob_lru_cache_size = self.blob_lru_cache_size
conf.transaction_cache_size = 10000
conf.components_to_skip = [ conf.components_to_skip = [
DHT_COMPONENT, UPNP_COMPONENT, HASH_ANNOUNCER_COMPONENT, DHT_COMPONENT, UPNP_COMPONENT, HASH_ANNOUNCER_COMPONENT,
PEER_PROTOCOL_SERVER_COMPONENT PEER_PROTOCOL_SERVER_COMPONENT

View file

@ -156,7 +156,7 @@ class Ledger(metaclass=LedgerRegistry):
self._on_ready_controller = StreamController() self._on_ready_controller = StreamController()
self.on_ready = self._on_ready_controller.stream self.on_ready = self._on_ready_controller.stream
self._tx_cache = pylru.lrucache(self.config.get("tx_cache_size", 10_000_000)) self._tx_cache = pylru.lrucache(self.config.get("tx_cache_size", 10_000))
self._update_tasks = TaskGroup() self._update_tasks = TaskGroup()
self._other_tasks = TaskGroup() # that we dont need to start self._other_tasks = TaskGroup() # that we dont need to start
self._utxo_reservation_lock = asyncio.Lock() self._utxo_reservation_lock = asyncio.Lock()
@ -578,7 +578,7 @@ class Ledger(metaclass=LedgerRegistry):
log.warning("history mismatch: %s vs %s", remote_history[remote_i], pending_synced_history[i]) log.warning("history mismatch: %s vs %s", remote_history[remote_i], pending_synced_history[i])
synced_history += pending_synced_history[i] synced_history += pending_synced_history[i]
cache_size = self.config.get("tx_cache_size", 10_000_000) cache_size = self.config.get("tx_cache_size", 10_000)
for txid, cache_item in updated_cached_items.items(): for txid, cache_item in updated_cached_items.items():
cache_item.pending_verifications -= 1 cache_item.pending_verifications -= 1
if cache_item.pending_verifications < 0: if cache_item.pending_verifications < 0:
@ -665,7 +665,8 @@ class Ledger(metaclass=LedgerRegistry):
if cache_item is None: if cache_item is None:
cache_item = TransactionCacheItem() cache_item = TransactionCacheItem()
self._tx_cache[txid] = cache_item self._tx_cache[txid] = cache_item
tx = cache_item.tx or Transaction(bytes.fromhex(raw.decode()), height=remote_height) tx = cache_item.tx or Transaction(bytes.fromhex(raw.decode() if isinstance(raw, bytes) else raw),
height=remote_height)
tx.height = remote_height tx.height = remote_height
cache_item.tx = tx cache_item.tx = tx
if 'merkle' in merkle and remote_heights[txid] > 0: if 'merkle' in merkle and remote_heights[txid] > 0:

View file

@ -71,7 +71,7 @@ class ReconnectTests(IntegrationTestCase):
self.ledger.network.session_pool.new_connection_event.clear() self.ledger.network.session_pool.new_connection_event.clear()
await node2.start(self.blockchain) await node2.start(self.blockchain)
# this is only to speed up the test as retrying would take 4+ seconds # this is only to speed up the test as retrying would take 4+ seconds
for session in self.ledger.network.session_pool.sessions.values(): for session in self.ledger.network.session_pool.sessions:
session.trigger_urgent_reconnect.set() session.trigger_urgent_reconnect.set()
await asyncio.wait_for(self.ledger.network.session_pool.new_connection_event.wait(), timeout=1) await asyncio.wait_for(self.ledger.network.session_pool.new_connection_event.wait(), timeout=1)
self.assertEqual(2, len(list(self.ledger.network.session_pool.available_sessions))) self.assertEqual(2, len(list(self.ledger.network.session_pool.available_sessions)))
@ -139,7 +139,7 @@ class ReconnectTests(IntegrationTestCase):
async def test_online_but_still_unavailable(self): async def test_online_but_still_unavailable(self):
# Edge case. See issue #2445 for context # Edge case. See issue #2445 for context
self.assertIsNotNone(self.ledger.network.session_pool.fastest_session) self.assertIsNotNone(self.ledger.network.session_pool.fastest_session)
for session in self.ledger.network.session_pool.sessions.values(): for session in self.ledger.network.session_pool.sessions:
session.response_time = None session.response_time = None
self.assertIsNone(self.ledger.network.session_pool.fastest_session) self.assertIsNone(self.ledger.network.session_pool.fastest_session)

View file

@ -36,12 +36,14 @@ class BlobExchangeTestBase(AsyncioTestCase):
self.addCleanup(shutil.rmtree, self.server_dir) self.addCleanup(shutil.rmtree, self.server_dir)
self.server_config = Config(data_dir=self.server_dir, download_dir=self.server_dir, wallet=self.server_dir, self.server_config = Config(data_dir=self.server_dir, download_dir=self.server_dir, wallet=self.server_dir,
fixed_peers=[]) fixed_peers=[])
self.server_config.transaction_cache_size = 10000
self.server_storage = SQLiteStorage(self.server_config, os.path.join(self.server_dir, "lbrynet.sqlite")) self.server_storage = SQLiteStorage(self.server_config, os.path.join(self.server_dir, "lbrynet.sqlite"))
self.server_blob_manager = BlobManager(self.loop, self.server_dir, self.server_storage, self.server_config) self.server_blob_manager = BlobManager(self.loop, self.server_dir, self.server_storage, self.server_config)
self.server = BlobServer(self.loop, self.server_blob_manager, 'bQEaw42GXsgCAGio1nxFncJSyRmnztSCjP') self.server = BlobServer(self.loop, self.server_blob_manager, 'bQEaw42GXsgCAGio1nxFncJSyRmnztSCjP')
self.client_config = Config(data_dir=self.client_dir, download_dir=self.client_dir, self.client_config = Config(data_dir=self.client_dir, download_dir=self.client_dir,
wallet=self.client_wallet_dir, fixed_peers=[]) wallet=self.client_wallet_dir, fixed_peers=[])
self.client_config.transaction_cache_size = 10000
self.client_storage = SQLiteStorage(self.client_config, os.path.join(self.client_dir, "lbrynet.sqlite")) self.client_storage = SQLiteStorage(self.client_config, os.path.join(self.client_dir, "lbrynet.sqlite"))
self.client_blob_manager = BlobManager(self.loop, self.client_dir, self.client_storage, self.client_config) self.client_blob_manager = BlobManager(self.loop, self.client_dir, self.client_storage, self.client_config)
self.client_peer_manager = PeerManager(self.loop) self.client_peer_manager = PeerManager(self.loop)

View file

@ -98,12 +98,14 @@ async def get_mock_wallet(sd_hash, storage, wallet_dir, balance=10.0, fee=None):
wallet = Wallet() wallet = Wallet()
ledger = Ledger({ ledger = Ledger({
'db': Database(os.path.join(wallet_dir, 'blockchain.db')), 'db': Database(os.path.join(wallet_dir, 'blockchain.db')),
'headers': FakeHeaders(514082) 'headers': FakeHeaders(514082),
'tx_cache_size': 10000
}) })
await ledger.db.open() await ledger.db.open()
wallet.generate_account(ledger) wallet.generate_account(ledger)
manager = WalletManager() manager = WalletManager()
manager.config = Config() manager.config = Config()
manager.config.transaction_cache_size = 10000
manager.wallets.append(wallet) manager.wallets.append(wallet)
manager.ledgers[Ledger] = ledger manager.ledgers[Ledger] = ledger
manager.ledger.network.client = ClientSession( manager.ledger.network.client = ClientSession(