Browse Source
tests: lnpeer: make debug htlc failure hooks more uniform
master
SomberNight
5 years ago
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
3 changed files with
3 additions and
5 deletions
-
electrum/lnpeer.py
-
electrum/lnworker.py
-
electrum/tests/test_lnpeer.py
|
|
@ -1509,7 +1509,7 @@ class Peer(Logger): |
|
|
|
self.logger.info(f"error processing onion packet: {e!r}") |
|
|
|
error_reason = OnionRoutingFailureMessage(code=OnionFailureCode.TEMPORARY_NODE_FAILURE, data=b'') |
|
|
|
else: |
|
|
|
if self.lnworker._fail_htlcs_with_temp_node_failure: |
|
|
|
if self.network.config.get('test_fail_htlcs_with_temp_node_failure'): |
|
|
|
error_reason = OnionRoutingFailureMessage(code=OnionFailureCode.TEMPORARY_NODE_FAILURE, data=b'') |
|
|
|
elif processed_onion.are_we_final: |
|
|
|
preimage, error_reason = self.maybe_fulfill_htlc( |
|
|
|
|
|
@ -494,7 +494,6 @@ class LNWallet(LNWorker): |
|
|
|
# used in tests |
|
|
|
self.enable_htlc_settle = asyncio.Event() |
|
|
|
self.enable_htlc_settle.set() |
|
|
|
self._fail_htlcs_with_temp_node_failure = False |
|
|
|
|
|
|
|
# note: accessing channels (besides simple lookup) needs self.lock! |
|
|
|
self._channels = {} # type: Dict[bytes, Channel] |
|
|
|
|
|
@ -118,7 +118,6 @@ class MockLNWallet(Logger, NetworkRetryManager[LNPeerAddr]): |
|
|
|
# used in tests |
|
|
|
self.enable_htlc_settle = asyncio.Event() |
|
|
|
self.enable_htlc_settle.set() |
|
|
|
self._fail_htlcs_with_temp_node_failure = False |
|
|
|
|
|
|
|
def get_invoice_status(self, key): |
|
|
|
pass |
|
|
@ -543,8 +542,8 @@ class TestPeer(ElectrumTestCase): |
|
|
|
@needs_test_with_all_chacha20_implementations |
|
|
|
def test_payment_multihop_temp_node_failure(self): |
|
|
|
graph = self.prepare_chans_and_peers_in_square() |
|
|
|
graph.w_b._fail_htlcs_with_temp_node_failure = True |
|
|
|
graph.w_c._fail_htlcs_with_temp_node_failure = True |
|
|
|
graph.w_b.network.config.set_key('test_fail_htlcs_with_temp_node_failure', True) |
|
|
|
graph.w_c.network.config.set_key('test_fail_htlcs_with_temp_node_failure', True) |
|
|
|
peers = graph.all_peers() |
|
|
|
async def pay(pay_req): |
|
|
|
result, log = await graph.w_a._pay(pay_req) |
|
|
|