cln/tests/plugins/misc_notifications.py
daywalker90 fcb81c8420 pytests: make sure test plugin misc_notifications.py exits fast
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
2026-06-17 18:49:59 +09:30

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()