Files
plugins/probe/test_probe.py
2024-02-06 20:29:25 +00:00

56 lines
1.3 KiB
Python

import unittest
import os
from pyln.testing.fixtures import * # noqa: F401,F403
plugin_path = os.path.join(os.path.dirname(__file__), "probe.py")
def test_probe_starts(node_factory):
l1 = node_factory.get_node()
# Test dynamically
l1.rpc.plugin_start(plugin_path)
l1.rpc.plugin_stop(plugin_path)
l1.rpc.plugin_start(plugin_path)
l1.stop()
# Then statically
l1.daemon.opts["plugin"] = plugin_path
l1.start()
def test_probe(node_factory):
l1, l2, l3, l4 = node_factory.line_graph(
4,
opts=[
{'plugin': plugin_path},
{},
{},
{}
],
wait_for_announce=True
)
res = l1.rpc.probe(l4.info['id'])
assert(res['destination'] == l4.info['id'])
assert(res['failcode'] == 16399)
def test_route_unreachable(node_factory):
l1, l2, l3, l4 = node_factory.line_graph(
4,
opts=[
{'plugin': plugin_path},
{},
{},
{}
],
wait_for_announce=True
)
l2.rpc.close(l3.info['id'])
res = l1.rpc.probe(l4.info['id'])
assert(res['destination'] == l4.info['id'])
assert(res['failcode'] == 16394)
route = res['route'].split(',')
assert(route.index(res['erring_channel']) == 1)