mirror of
https://github.com/ElementsProject/lightning.git
synced 2026-08-13 12:32:55 +02:00
e7fe59bc61 changed the way lightningd refuses
rpc calls during shutdown and the now resulting ConnectionRefusedError was never caught
so the test plugin would not exit and the teardown of those tests would hang for the full
timeout
Changelog-None
46 lines
1.3 KiB
Python
Executable file
46 lines
1.3 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
"""Plugin to be used to test miscellaneous notifications.
|
|
"""
|
|
|
|
from pyln.client import Plugin
|
|
import sys
|
|
|
|
plugin = Plugin()
|
|
|
|
|
|
@plugin.init()
|
|
def init(plugin, options, configuration):
|
|
plugin.log("misc_notifications initialized")
|
|
|
|
|
|
@plugin.subscribe("channel_opened")
|
|
def channel_opened(plugin, channel_opened, **kwargs):
|
|
plugin.log("A channel was opened to us by {}, with an amount"
|
|
" of {} and the following funding transaction id: {}"
|
|
.format(channel_opened["id"], channel_opened["funding_msat"],
|
|
channel_opened["funding_txid"]))
|
|
|
|
|
|
@plugin.subscribe("channel_state_changed")
|
|
def channel_state_changed(plugin, channel_state_changed, **kwargs):
|
|
plugin.log("channel_state_changed {}".format(channel_state_changed))
|
|
|
|
|
|
@plugin.subscribe("shutdown")
|
|
def shutdown(plugin, **kwargs):
|
|
|
|
# 'shutdown' notification can be called in two ways, from `plugin stop` or from
|
|
# lightningd's shutdown loop, we test which one by making `getinfo` call
|
|
try:
|
|
plugin.rpc.getinfo()
|
|
plugin.rpc.datastore(key='test', string='Allowed', mode="create-or-append")
|
|
plugin.log("via plugin stop, datastore success")
|
|
except ConnectionRefusedError as e:
|
|
# lightningd shutdown, refusing RPC calls
|
|
plugin.log(str(e))
|
|
sys.exit(0)
|
|
|
|
sys.exit(0)
|
|
|
|
|
|
plugin.run()
|