diff --git a/electrum/lnworker.py b/electrum/lnworker.py index 758ddcaab..28fa8fe37 100644 --- a/electrum/lnworker.py +++ b/electrum/lnworker.py @@ -967,6 +967,8 @@ class LNWallet(LNWorker): if self.lnwatcher: await self.lnwatcher.stop() self.lnwatcher = None + if self.swap_manager: # may not be present in tests + await self.swap_manager.stop() async def wait_for_received_pending_htlcs_to_get_removed(self): assert self.stopping_soon is True diff --git a/electrum/submarine_swaps.py b/electrum/submarine_swaps.py index 8ce0f591f..e8a861fe2 100644 --- a/electrum/submarine_swaps.py +++ b/electrum/submarine_swaps.py @@ -219,6 +219,9 @@ class SwapManager(Logger): finally: self.logger.info("taskgroup stopped.") + async def stop(self): + await self.taskgroup.cancel_remaining() + async def pay_invoice(self, key): self.logger.info(f'trying to pay invoice {key}') self.invoices_to_pay[key] = 1000000000000 # lock diff --git a/electrum/tests/test_lnpeer.py b/electrum/tests/test_lnpeer.py index e016a5ea1..fc25a8bb0 100644 --- a/electrum/tests/test_lnpeer.py +++ b/electrum/tests/test_lnpeer.py @@ -147,6 +147,7 @@ class MockLNWallet(Logger, EventListener, NetworkRetryManager[LNPeerAddr]): self.network = MockNetwork(tx_queue, config=self.config) self.taskgroup = OldTaskGroup() self.lnwatcher = None + self.swap_manager = None self.listen_server = None self._channels = {chan.channel_id: chan for chan in chans} self.payment_info = {}