MCPcopy Create free account
hub / github.com/ElementsProject/lightning / test_networkevents

Function test_networkevents

tests/test_connection.py:4737–4895  ·  view source on GitHub ↗
(node_factory, executor)

Source from the content-addressed store, hash-verified

4735
4736
4737def test_networkevents(node_factory, executor):
4738 l1, l2 = node_factory.get_nodes(2)
4739
4740 before = time.time()
4741 l1.rpc.connect(l2.info['id'], 'localhost', l2.port)
4742 after = time.time()
4743
4744 nevents = l1.rpc.listnetworkevents()['networkevents']
4745 # Filtering by id gives same results
4746 assert nevents == l1.rpc.listnetworkevents(l2.info['id'])['networkevents']
4747 assert nevents == l1.rpc.listnetworkevents(id=l2.info['id'])['networkevents']
4748
4749 # Another id gives no events
4750 assert l1.rpc.listnetworkevents(l1.info['id']) == {'networkevents': []}
4751
4752 # These can only be estimated, will vary each time
4753 assert int(before) <= only_one(nevents)['timestamp'] <= after
4754 del only_one(nevents)['timestamp']
4755
4756 assert only_one(nevents)['duration_nsec'] <= int((after - before) * 1_000_000_000)
4757 del only_one(nevents)['duration_nsec']
4758
4759 assert only_one(nevents)['reason'].startswith('connect command "')
4760 del only_one(nevents)['reason']
4761
4762 assert nevents == [{'created_index': 1,
4763 'peer_id': l2.info['id'],
4764 'type': 'connect'}]
4765
4766 # We will eventually get a ping event.
4767 res = l1.rpc.wait('networkevents', 'created', 2)
4768 assert res == {'subsystem': 'networkevents',
4769 'created': 2,
4770 'networkevents': {'created_index': 2,
4771 'type': 'ping',
4772 'peer_id': l2.info['id']}}
4773
4774 nevents = l1.rpc.listnetworkevents(start=2)['networkevents']
4775 del only_one(nevents)['duration_nsec']
4776 del only_one(nevents)['timestamp']
4777
4778 assert nevents == [{'created_index': 2,
4779 'peer_id': l2.info['id'],
4780 'type': 'ping'}]
4781
4782 # Finally, disconnect event.
4783 fut = executor.submit(l1.rpc.wait, 'networkevents', 'created', 3)
4784 l1.daemon.wait_for_log('waiting on networkevents created 3')
4785 l2.rpc.disconnect(l1.info['id'])
4786 after = time.time()
4787
4788 res = fut.result(TIMEOUT)
4789 assert res == {'subsystem': 'networkevents',
4790 'created': 3,
4791 'networkevents': {'created_index': 3,
4792 'type': 'disconnect',
4793 'peer_id': l2.info['id']}}
4794

Callers

nothing calls this directly

Calls 13

only_oneFunction · 0.90
wait_forFunction · 0.90
get_nodesMethod · 0.80
wait_for_logMethod · 0.80
join_nodesMethod · 0.80
reply_filterMethod · 0.80
connectMethod · 0.45
waitMethod · 0.45
disconnectMethod · 0.45
stopMethod · 0.45
startMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected