@@ -80,6 +80,14 @@ def run_test(self):
80
80
81
81
self .log .info ("Test disconnectrnode RPCs" )
82
82
83
+ self .log .info ("disconnectnode: fail to disconnect when calling with address and nodeid" )
84
+ address1 = self .nodes [0 ].getpeerinfo ()[0 ]['addr' ]
85
+ node1 = self .nodes [0 ].getpeerinfo ()[0 ]['addr' ]
86
+ assert_raises_jsonrpc (- 32602 , "Only one of address and nodeid should be provided." , self .nodes [0 ].disconnectnode , address = address1 , nodeid = node1 )
87
+
88
+ self .log .info ("disconnectnode: fail to disconnect when calling with junk address" )
89
+ assert_raises_jsonrpc (- 29 , "Node not found in connected nodes" , self .nodes [0 ].disconnectnode , address = "221B Baker Street" )
90
+
83
91
self .log .info ("disconnectnode: successfully disconnect node by address" )
84
92
address1 = self .nodes [0 ].getpeerinfo ()[0 ]['addr' ]
85
93
self .nodes [0 ].disconnectnode (address = address1 )
@@ -88,7 +96,14 @@ def run_test(self):
88
96
89
97
self .log .info ("disconnectnode: successfully reconnect node" )
90
98
connect_nodes_bi (self .nodes , 0 , 1 ) # reconnect the node
99
+ assert_equal (len (self .nodes [0 ].getpeerinfo ()), 2 )
91
100
assert [node for node in self .nodes [0 ].getpeerinfo () if node ['addr' ] == address1 ]
92
101
102
+ self .log .info ("disconnectnode: successfully disconnect node by node id" )
103
+ id1 = self .nodes [0 ].getpeerinfo ()[0 ]['id' ]
104
+ self .nodes [0 ].disconnectnode (nodeid = id1 )
105
+ wait_until (lambda : len (self .nodes [0 ].getpeerinfo ()) == 1 )
106
+ assert not [node for node in self .nodes [0 ].getpeerinfo () if node ['id' ] == id1 ]
107
+
93
108
if __name__ == '__main__' :
94
109
DisconnectBanTest ().main ()
0 commit comments