Feedback: Reuse IntegrationTestcase.generate() in generate_and_wait().

This commit is contained in:
Jonathan Moody 2022-09-20 08:35:50 -05:00 committed by Lex Berezhny
parent bd1cebdb4c
commit 5a26aea398

View file

@ -298,23 +298,11 @@ class IntegrationTestCase(AsyncioTestCase):
async def generate_and_wait(self, blocks_to_generate, txids, ledger=None): async def generate_and_wait(self, blocks_to_generate, txids, ledger=None):
if blocks_to_generate > 0: if blocks_to_generate > 0:
watcher1 = (ledger or self.ledger).on_transaction.where( watcher = (ledger or self.ledger).on_transaction.where(
lambda e: ((e.tx.id in txids and txids.remove(e.tx.id)), len(txids) <= 0)[-1] # multi-statement lambda lambda e: ((e.tx.id in txids and txids.remove(e.tx.id)), len(txids) <= 0)[-1] # multi-statement lambda
) )
watcher2 = (ledger or self.ledger).on_header.where(self.blockchain.is_expected_block) await self.generate(blocks_to_generate)
self.conductor.spv_node.server.synchronized.clear() await watcher
await self.blockchain.generate(blocks_to_generate)
height = self.blockchain.block_expected
await watcher1
await watcher2
while True:
await self.conductor.spv_node.server.synchronized.wait()
self.conductor.spv_node.server.synchronized.clear()
if self.conductor.spv_node.server.db.db_height < height:
continue
if self.conductor.spv_node.server._es_height < height:
continue
break
def on_address_update(self, address): def on_address_update(self, address):
return self.ledger.on_transaction.where( return self.ledger.on_transaction.where(