mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-03-26 20:30:59 +01:00
pytest: add test for a plugin which falls over outside a command.
This actually passes fine, but it's an interesting case to test. Fixed-by: Darosior <darosior@protonmail.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
9b9e830780
commit
6441233d2b
2 changed files with 46 additions and 0 deletions
31
tests/plugins/fail_by_itself.py
Executable file
31
tests/plugins/fail_by_itself.py
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/env python3
|
||||
from pyln.client import Plugin
|
||||
import os
|
||||
import threading
|
||||
import time
|
||||
|
||||
plugin = Plugin()
|
||||
|
||||
|
||||
class FailThread(threading.Thread):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.start()
|
||||
|
||||
def run(self):
|
||||
time.sleep(1)
|
||||
print("Exiting!")
|
||||
os._exit(1)
|
||||
|
||||
|
||||
@plugin.init()
|
||||
def init(options, configuration, plugin):
|
||||
FailThread()
|
||||
|
||||
|
||||
@plugin.method('failcmd')
|
||||
def failcmd(plugin):
|
||||
pass
|
||||
|
||||
|
||||
plugin.run()
|
|
@ -1218,3 +1218,18 @@ def test_replacement_payload(node_factory):
|
|||
l1.rpc.pay(inv)
|
||||
|
||||
assert l2.daemon.wait_for_log("Attept to pay.*with wrong secret")
|
||||
|
||||
|
||||
def test_plugin_fail(node_factory):
|
||||
"""Test that a plugin which fails (not during a command)"""
|
||||
plugin = os.path.join(os.path.dirname(__file__), 'plugins/fail_by_itself.py')
|
||||
l1 = node_factory.get_node(options={"plugin": plugin})
|
||||
|
||||
time.sleep(2)
|
||||
# It should clean up!
|
||||
assert 'failcmd' not in [h['command'] for h in l1.rpc.help()['help']]
|
||||
|
||||
l1.rpc.plugin_start(plugin)
|
||||
time.sleep(2)
|
||||
# It should clean up!
|
||||
assert 'failcmd' not in [h['command'] for h in l1.rpc.help()['help']]
|
||||
|
|
Loading…
Add table
Reference in a new issue