forked from zcash/zcash
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add RPC tests for setban & disconnectnode
- Loading branch information
1 parent
1cad8c9
commit 2ab237a
Showing
3 changed files
with
71 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#!/usr/bin/env python2 | ||
# Copyright (c) 2014 The Bitcoin Core developers | ||
# Distributed under the MIT software license, see the accompanying | ||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
|
||
# | ||
# Test node handling | ||
# | ||
|
||
from test_framework.test_framework import BitcoinTestFramework | ||
from test_framework.util import * | ||
import base64 | ||
|
||
try: | ||
import http.client as httplib | ||
except ImportError: | ||
import httplib | ||
try: | ||
import urllib.parse as urlparse | ||
except ImportError: | ||
import urlparse | ||
|
||
class NodeHandlingTest (BitcoinTestFramework): | ||
def run_test(self): | ||
########################### | ||
# setban/listbanned tests # | ||
########################### | ||
assert_equal(len(self.nodes[2].getpeerinfo()), 4) #we should have 4 nodes at this point | ||
self.nodes[2].setban("127.0.0.1", "add") | ||
time.sleep(3) #wait till the nodes are disconected | ||
assert_equal(len(self.nodes[2].getpeerinfo()), 0) #all nodes must be disconnected at this point | ||
assert_equal(len(self.nodes[2].listbanned()), 1) | ||
self.nodes[2].clearbanned() | ||
assert_equal(len(self.nodes[2].listbanned()), 0) | ||
self.nodes[2].setban("127.0.0.0/24", "add") | ||
assert_equal(len(self.nodes[2].listbanned()), 1) | ||
try: | ||
self.nodes[2].setban("127.0.0.1", "add") #throws exception because 127.0.0.1 is within range 127.0.0.0/24 | ||
except: | ||
pass | ||
assert_equal(len(self.nodes[2].listbanned()), 1) #still only one banned ip because 127.0.0.1 is within the range of 127.0.0.0/24 | ||
try: | ||
self.nodes[2].setban("127.0.0.1", "remove") | ||
except: | ||
pass | ||
assert_equal(len(self.nodes[2].listbanned()), 1) | ||
self.nodes[2].setban("127.0.0.0/24", "remove") | ||
assert_equal(len(self.nodes[2].listbanned()), 0) | ||
self.nodes[2].clearbanned() | ||
assert_equal(len(self.nodes[2].listbanned()), 0) | ||
|
||
########################### | ||
# RPC disconnectnode test # | ||
########################### | ||
url = urlparse.urlparse(self.nodes[1].url) | ||
self.nodes[0].disconnectnode(url.hostname+":"+str(p2p_port(1))) | ||
time.sleep(2) #disconnecting a node needs a little bit of time | ||
for node in self.nodes[0].getpeerinfo(): | ||
assert(node['addr'] != url.hostname+":"+str(p2p_port(1))) | ||
|
||
connect_nodes_bi(self.nodes,0,1) #reconnect the node | ||
found = False | ||
for node in self.nodes[0].getpeerinfo(): | ||
if node['addr'] == url.hostname+":"+str(p2p_port(1)): | ||
found = True | ||
assert(found) | ||
|
||
if __name__ == '__main__': | ||
NodeHandlingTest ().main () |