(node_factory, executor)
| 4735 | |
| 4736 | |
| 4737 | def 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 |
nothing calls this directly
no test coverage detected