mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-30 08:51:32 +00:00
fix test: test_reestablish_with_old_state
Messages sent as part of the payment were getting interleaved with the channel_reestablish. It does not actually make sense to do a payment and then reestablish the channel in the same transport -- the channel is supposed to already have been reestablished to do a payment in the first place. So, after payment, strip down the transport, and set up a new transport before reestablishing. Traceback (most recent call last): File "...\Python\Python38\lib\unittest\case.py", line 60, in testPartExecutor yield File "...\Python\Python38\lib\unittest\case.py", line 676, in run self._callTestMethod(testMethod) File "...\Python\Python38\lib\unittest\case.py", line 633, in _callTestMethod method() File "...\electrum\electrum\tests\test_lnpeer.py", line 262, in test_reestablish_with_old_state run(f()) File "...\electrum\electrum\tests\test_lnpeer.py", line 302, in run return asyncio.run_coroutine_threadsafe(coro, loop=asyncio.get_event_loop()).result() File "...\Python\Python38\lib\concurrent\futures\_base.py", line 439, in result return self.__get_result() File "...\Python\Python38\lib\concurrent\futures\_base.py", line 388, in __get_result raise self._exception File "...\electrum\electrum\tests\test_lnpeer.py", line 260, in f await gath File "...\electrum\electrum\lnpeer.py", line 439, in _message_loop self.process_message(msg) File "...\electrum\electrum\lnpeer.py", line 159, in process_message execution_result = f(payload) File "...\electrum\electrum\lnpeer.py", line 1308, in on_revoke_and_ack chan.receive_revocation(rev) File "...\electrum\electrum\lnchannel.py", line 556, in receive_revocation raise Exception('revoked secret not for current point') Exception: revoked secret not for current point
This commit is contained in:
parent
4a8ee1818a
commit
5fda2cbb42
1 changed files with 10 additions and 2 deletions
|
@ -243,10 +243,18 @@ class TestPeer(ElectrumTestCase):
|
||||||
alice_channel_0, bob_channel_0 = create_test_channels() # these are identical
|
alice_channel_0, bob_channel_0 = create_test_channels() # these are identical
|
||||||
p1, p2, w1, w2, _q1, _q2 = self.prepare_peers(alice_channel, bob_channel)
|
p1, p2, w1, w2, _q1, _q2 = self.prepare_peers(alice_channel, bob_channel)
|
||||||
pay_req = self.prepare_invoice(w2)
|
pay_req = self.prepare_invoice(w2)
|
||||||
async def reestablish():
|
async def pay():
|
||||||
result = await LNWallet._pay(w1, pay_req)
|
result = await LNWallet._pay(w1, pay_req)
|
||||||
self.assertEqual(result, True)
|
self.assertEqual(result, True)
|
||||||
w1.channels = {alice_channel_0.channel_id: alice_channel_0}
|
gath.cancel()
|
||||||
|
gath = asyncio.gather(pay(), p1._message_loop(), p2._message_loop())
|
||||||
|
async def f():
|
||||||
|
await gath
|
||||||
|
with self.assertRaises(concurrent.futures.CancelledError):
|
||||||
|
run(f())
|
||||||
|
|
||||||
|
p1, p2, w1, w2, _q1, _q2 = self.prepare_peers(alice_channel_0, bob_channel)
|
||||||
|
async def reestablish():
|
||||||
await asyncio.gather(
|
await asyncio.gather(
|
||||||
p1.reestablish_channel(alice_channel_0),
|
p1.reestablish_channel(alice_channel_0),
|
||||||
p2.reestablish_channel(bob_channel))
|
p2.reestablish_channel(bob_channel))
|
||||||
|
|
Loading…
Add table
Reference in a new issue