(self)
| 242 | assert "(ipv4, ipv6, onion, i2p, cjdns)" in self.nodes[0].help("getnetworkinfo") |
| 243 | |
| 244 | def test_addnode_getaddednodeinfo(self): |
| 245 | self.log.info("Test addnode and getaddednodeinfo") |
| 246 | assert_equal(self.nodes[0].getaddednodeinfo(), []) |
| 247 | self.log.info("Add a node (node2) to node0") |
| 248 | ip_port = "127.0.0.1:{}".format(p2p_port(2)) |
| 249 | self.nodes[0].addnode(node=ip_port, command='add') |
| 250 | self.log.info("Try to add an equivalent ip and check it fails") |
| 251 | self.log.debug("(note that OpenBSD doesn't support the IPv4 shorthand notation with omitted zero-bytes)") |
| 252 | if platform.system() != "OpenBSD": |
| 253 | ip_port2 = "127.1:{}".format(p2p_port(2)) |
| 254 | assert_raises_rpc_error(-23, "Node already added", self.nodes[0].addnode, node=ip_port2, command='add') |
| 255 | self.log.info("Check that the node has indeed been added") |
| 256 | added_nodes = self.nodes[0].getaddednodeinfo() |
| 257 | assert_equal(len(added_nodes), 1) |
| 258 | assert_equal(added_nodes[0]['addednode'], ip_port) |
| 259 | self.log.info("Check that filtering by node works") |
| 260 | self.nodes[0].addnode(node="11.22.33.44", command='add') |
| 261 | first_added_node = self.nodes[0].getaddednodeinfo(node=ip_port) |
| 262 | assert_equal(added_nodes, first_added_node) |
| 263 | assert_equal(len(self.nodes[0].getaddednodeinfo()), 2) |
| 264 | self.log.info("Check that node cannot be added again") |
| 265 | assert_raises_rpc_error(-23, "Node already added", self.nodes[0].addnode, node=ip_port, command='add') |
| 266 | self.log.info("Check that node can be removed") |
| 267 | self.nodes[0].addnode(node=ip_port, command='remove') |
| 268 | added_nodes = self.nodes[0].getaddednodeinfo() |
| 269 | assert_equal(len(added_nodes), 1) |
| 270 | assert_equal(added_nodes[0]['addednode'], "11.22.33.44") |
| 271 | self.log.info("Check that an invalid command returns an error") |
| 272 | assert_raises_rpc_error(-1, 'addnode "node" "command"', self.nodes[0].addnode, node=ip_port, command='abc') |
| 273 | self.log.info("Check that trying to remove the node again returns an error") |
| 274 | assert_raises_rpc_error(-24, "Node could not be removed", self.nodes[0].addnode, node=ip_port, command='remove') |
| 275 | self.log.info("Check that a non-existent node returns an error") |
| 276 | assert_raises_rpc_error(-24, "Node has not been added", self.nodes[0].getaddednodeinfo, '1.1.1.1') |
| 277 | |
| 278 | def test_service_flags(self): |
| 279 | self.log.info("Test service flags") |
no test coverage detected