MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / test_addnode_getaddednodeinfo

Method test_addnode_getaddednodeinfo

test/functional/rpc_net.py:244–276  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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")

Callers 1

run_testMethod · 0.95

Calls 5

assert_equalFunction · 0.90
p2p_portFunction · 0.90
assert_raises_rpc_errorFunction · 0.90
infoMethod · 0.80
formatMethod · 0.80

Tested by

no test coverage detected