forked from LBRYCommunity/lbry-sdk
add reconnection test
This commit is contained in:
parent
b999abb9ea
commit
36ad834d43
2 changed files with 34 additions and 0 deletions
33
tests/integration/test_reconnect.py
Normal file
33
tests/integration/test_reconnect.py
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
import asyncio
|
||||||
|
from orchstr8.testcase import IntegrationTestCase, d2f
|
||||||
|
from torba.constants import COIN
|
||||||
|
|
||||||
|
|
||||||
|
class ReconnectTests(IntegrationTestCase):
|
||||||
|
|
||||||
|
VERBOSE = False
|
||||||
|
|
||||||
|
async def test_connection_drop_still_receives_events_after_reconnected(self):
|
||||||
|
address1 = await d2f(self.account.receiving.get_or_create_usable_address())
|
||||||
|
self.ledger.network.client.connectionLost()
|
||||||
|
sendtxid = await self.blockchain.send_to_address(address1, 1.1337)
|
||||||
|
await self.on_transaction_id(sendtxid) # mempool
|
||||||
|
await self.blockchain.generate(1)
|
||||||
|
await self.on_transaction_id(sendtxid) # confirmed
|
||||||
|
|
||||||
|
self.assertEqual(round(await self.get_balance(self.account)/COIN, 4), 1.1337)
|
||||||
|
# is it real? are we rich!? let me see this tx...
|
||||||
|
d = self.ledger.network.get_transaction(sendtxid)
|
||||||
|
# what's that smoke on my ethernet cable? oh no!
|
||||||
|
self.ledger.network.client.connectionLost()
|
||||||
|
with self.assertRaisesRegex(TimeoutError, 'Connection dropped'):
|
||||||
|
await d2f(d)
|
||||||
|
# rich but offline? no way, no water, let's retry
|
||||||
|
with self.assertRaisesRegex(ConnectionError, 'connection is not available'):
|
||||||
|
await d2f(self.ledger.network.get_transaction(sendtxid))
|
||||||
|
# * goes to pick some water outside... * time passes by and another donation comes in
|
||||||
|
sendtxid = await self.blockchain.send_to_address(address1, 42)
|
||||||
|
await self.blockchain.generate(1)
|
||||||
|
# omg, the burned cable still works! torba is fire proof!
|
||||||
|
await d2f(self.ledger.network.get_transaction(sendtxid))
|
||||||
|
|
1
tox.ini
1
tox.ini
|
@ -20,5 +20,6 @@ commands =
|
||||||
unit: coverage run -p --source={envsitepackagesdir}/torba -m twisted.trial unit
|
unit: coverage run -p --source={envsitepackagesdir}/torba -m twisted.trial unit
|
||||||
integration: orchstr8 download
|
integration: orchstr8 download
|
||||||
integration: coverage run -p --source={envsitepackagesdir}/torba -m twisted.trial --reactor=asyncio integration.test_transactions
|
integration: coverage run -p --source={envsitepackagesdir}/torba -m twisted.trial --reactor=asyncio integration.test_transactions
|
||||||
|
integration: coverage run -p --source={envsitepackagesdir}/torba -m twisted.trial --reactor=asyncio integration.test_reconnect
|
||||||
# Too slow on Travis
|
# Too slow on Travis
|
||||||
# integration: coverage run -p --source={envsitepackagesdir}/torba -m twisted.trial --reactor=asyncio integration.test_blockchain_reorganization
|
# integration: coverage run -p --source={envsitepackagesdir}/torba -m twisted.trial --reactor=asyncio integration.test_blockchain_reorganization
|
||||||
|
|
Loading…
Reference in a new issue