Merge #14903: tests: Handle ImportError explicitly, improve comparisons against None

c9ba253f4f Add E711 to flake8 check (Daniel Ingram)
17b55202da Compare to None with is/is not (Daniel Ingram)
1b89074ae2 Change '== None' to 'is None' (Daniel Ingram)
16d2937723 Handle exception as ImportError (Daniel Ingram)

Pull request description:

Tree-SHA512: aa5875ea3d9ac47ac898545ff023b511042cd377ea0c4594074daae119f3d4f3fc295721aad94a732a907086ecb32bce19a8eed38adf479f12663c4e8944f721
This commit is contained in:
Wladimir J. van der Laan 2018-12-13 12:57:41 +01:00
commit f17aca67b0
No known key found for this signature in database
GPG key ID: 1E4AED62986CD25D
9 changed files with 18 additions and 17 deletions

View file

@ -109,7 +109,7 @@ def main():
match = re.search('^\+\+\+\ (.*?/){%s}(\S*)' % args.p, line) match = re.search('^\+\+\+\ (.*?/){%s}(\S*)' % args.p, line)
if match: if match:
filename = match.group(2) filename = match.group(2)
if filename == None: if filename is None:
continue continue
if args.regex is not None: if args.regex is not None:

View file

@ -491,7 +491,7 @@ def get_git_change_year_range(filename):
def file_already_has_core_copyright(file_lines): def file_already_has_core_copyright(file_lines):
index, _ = get_updatable_copyright_line(file_lines) index, _ = get_updatable_copyright_line(file_lines)
return index != None return index is not None
################################################################################ ################################################################################
# insert header execution # insert header execution

View file

@ -25,7 +25,7 @@ import json
import codecs import codecs
try: try:
from urllib.request import Request,urlopen from urllib.request import Request,urlopen
except: except ImportError:
from urllib2 import Request,urlopen from urllib2 import Request,urlopen
# External tools (can be overridden using environment) # External tools (can be overridden using environment)

View file

@ -125,7 +125,7 @@ def escape_cdata(text):
return text return text
def contains_bitcoin_addr(text, errors): def contains_bitcoin_addr(text, errors):
if text != None and ADDRESS_REGEXP.search(text) != None: if text is not None and ADDRESS_REGEXP.search(text) is not None:
errors.append('Translation "%s" contains a bitcoin address. This will be removed.' % (text)) errors.append('Translation "%s" contains a bitcoin address. This will be removed.' % (text))
return True return True
return False return False

View file

@ -31,13 +31,13 @@ class HTTPBasicsTest (BitcoinTestFramework):
conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) conn.request('POST', '/', '{"method": "getbestblockhash"}', headers)
out1 = conn.getresponse().read() out1 = conn.getresponse().read()
assert(b'"error":null' in out1) assert(b'"error":null' in out1)
assert(conn.sock!=None) #according to http/1.1 connection must still be open! assert(conn.sock is not None) #according to http/1.1 connection must still be open!
#send 2nd request without closing connection #send 2nd request without closing connection
conn.request('POST', '/', '{"method": "getchaintips"}', headers) conn.request('POST', '/', '{"method": "getchaintips"}', headers)
out1 = conn.getresponse().read() out1 = conn.getresponse().read()
assert(b'"error":null' in out1) #must also response with a correct json-rpc message assert(b'"error":null' in out1) #must also response with a correct json-rpc message
assert(conn.sock!=None) #according to http/1.1 connection must still be open! assert(conn.sock is not None) #according to http/1.1 connection must still be open!
conn.close() conn.close()
#same should be if we add keep-alive because this should be the std. behaviour #same should be if we add keep-alive because this should be the std. behaviour
@ -48,13 +48,13 @@ class HTTPBasicsTest (BitcoinTestFramework):
conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) conn.request('POST', '/', '{"method": "getbestblockhash"}', headers)
out1 = conn.getresponse().read() out1 = conn.getresponse().read()
assert(b'"error":null' in out1) assert(b'"error":null' in out1)
assert(conn.sock!=None) #according to http/1.1 connection must still be open! assert(conn.sock is not None) #according to http/1.1 connection must still be open!
#send 2nd request without closing connection #send 2nd request without closing connection
conn.request('POST', '/', '{"method": "getchaintips"}', headers) conn.request('POST', '/', '{"method": "getchaintips"}', headers)
out1 = conn.getresponse().read() out1 = conn.getresponse().read()
assert(b'"error":null' in out1) #must also response with a correct json-rpc message assert(b'"error":null' in out1) #must also response with a correct json-rpc message
assert(conn.sock!=None) #according to http/1.1 connection must still be open! assert(conn.sock is not None) #according to http/1.1 connection must still be open!
conn.close() conn.close()
#now do the same with "Connection: close" #now do the same with "Connection: close"
@ -65,7 +65,7 @@ class HTTPBasicsTest (BitcoinTestFramework):
conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) conn.request('POST', '/', '{"method": "getbestblockhash"}', headers)
out1 = conn.getresponse().read() out1 = conn.getresponse().read()
assert(b'"error":null' in out1) assert(b'"error":null' in out1)
assert(conn.sock==None) #now the connection must be closed after the response assert(conn.sock is None) #now the connection must be closed after the response
#node1 (2nd node) is running with disabled keep-alive option #node1 (2nd node) is running with disabled keep-alive option
urlNode1 = urllib.parse.urlparse(self.nodes[1].url) urlNode1 = urllib.parse.urlparse(self.nodes[1].url)
@ -88,7 +88,7 @@ class HTTPBasicsTest (BitcoinTestFramework):
conn.request('POST', '/', '{"method": "getbestblockhash"}', headers) conn.request('POST', '/', '{"method": "getbestblockhash"}', headers)
out1 = conn.getresponse().read() out1 = conn.getresponse().read()
assert(b'"error":null' in out1) assert(b'"error":null' in out1)
assert(conn.sock!=None) #connection must be closed because bitcoind should use keep-alive by default assert(conn.sock is not None) #connection must be closed because bitcoind should use keep-alive by default
# Check excessive request size # Check excessive request size
conn = http.client.HTTPConnection(urlNode2.hostname, urlNode2.port) conn = http.client.HTTPConnection(urlNode2.hostname, urlNode2.port)

View file

@ -84,7 +84,7 @@ class PrioritiseTransactionTest(BitcoinTestFramework):
high_fee_tx = x high_fee_tx = x
# Something high-fee should have been mined! # Something high-fee should have been mined!
assert(high_fee_tx != None) assert(high_fee_tx is not None)
# Add a prioritisation before a tx is in the mempool (de-prioritising a # Add a prioritisation before a tx is in the mempool (de-prioritising a
# high-fee transaction so that it's now low fee). # high-fee transaction so that it's now low fee).

View file

@ -764,7 +764,7 @@ class HeaderAndShortIDs:
self.prefilled_txn = [] self.prefilled_txn = []
self.use_witness = False self.use_witness = False
if p2pheaders_and_shortids != None: if p2pheaders_and_shortids is not None:
self.header = p2pheaders_and_shortids.header self.header = p2pheaders_and_shortids.header
self.nonce = p2pheaders_and_shortids.nonce self.nonce = p2pheaders_and_shortids.nonce
self.shortids = p2pheaders_and_shortids.shortids self.shortids = p2pheaders_and_shortids.shortids
@ -822,7 +822,7 @@ class BlockTransactionsRequest:
def __init__(self, blockhash=0, indexes = None): def __init__(self, blockhash=0, indexes = None):
self.blockhash = blockhash self.blockhash = blockhash
self.indexes = indexes if indexes != None else [] self.indexes = indexes if indexes is not None else []
def deserialize(self, f): def deserialize(self, f):
self.blockhash = deser_uint256(f) self.blockhash = deser_uint256(f)
@ -863,7 +863,7 @@ class BlockTransactions:
def __init__(self, blockhash=0, transactions = None): def __init__(self, blockhash=0, transactions = None):
self.blockhash = blockhash self.blockhash = blockhash
self.transactions = transactions if transactions != None else [] self.transactions = transactions if transactions is not None else []
def deserialize(self, f): def deserialize(self, f):
self.blockhash = deser_uint256(f) self.blockhash = deser_uint256(f)
@ -1052,7 +1052,7 @@ class msg_getdata:
command = b"getdata" command = b"getdata"
def __init__(self, inv=None): def __init__(self, inv=None):
self.inv = inv if inv != None else [] self.inv = inv if inv is not None else []
def deserialize(self, f): def deserialize(self, f):
self.inv = deser_vector(f, CInv) self.inv = deser_vector(f, CInv)

View file

@ -68,7 +68,7 @@ class TestNode():
self.rpc_timeout = timewait self.rpc_timeout = timewait
self.binary = bitcoind self.binary = bitcoind
self.coverage_dir = coverage_dir self.coverage_dir = coverage_dir
if extra_conf != None: if extra_conf is not None:
append_config(datadir, extra_conf) append_config(datadir, extra_conf)
# Most callers will just need to add extra args to the standard list below. # Most callers will just need to add extra args to the standard list below.
# For those callers that need more flexibility, they can just set the args property directly. # For those callers that need more flexibility, they can just set the args property directly.

View file

@ -36,6 +36,7 @@ export LC_ALL=C
# E701 multiple statements on one line (colon) # E701 multiple statements on one line (colon)
# E702 multiple statements on one line (semicolon) # E702 multiple statements on one line (semicolon)
# E703 statement ends with a semicolon # E703 statement ends with a semicolon
# E711 comparison to None should be 'if cond is None:'
# E714 test for object identity should be "is not" # E714 test for object identity should be "is not"
# E721 do not compare types, use "isinstance()" # E721 do not compare types, use "isinstance()"
# E741 do not use variables named "l", "O", or "I" # E741 do not use variables named "l", "O", or "I"
@ -87,4 +88,4 @@ elif PYTHONWARNINGS="ignore" flake8 --version | grep -q "Python 2"; then
exit 0 exit 0
fi fi
PYTHONWARNINGS="ignore" flake8 --ignore=B,C,E,F,I,N,W --select=E101,E112,E113,E115,E116,E125,E129,E131,E133,E223,E224,E242,E266,E271,E272,E273,E274,E275,E304,E306,E401,E402,E502,E701,E702,E703,E714,E721,E741,E742,E743,E901,E902,F401,F402,F403,F404,F405,F406,F407,F601,F602,F621,F622,F631,F701,F702,F703,F704,F705,F706,F707,F811,F812,F821,F822,F823,F831,F841,W191,W291,W292,W293,W504,W601,W602,W603,W604,W605,W606 "${@:-.}" PYTHONWARNINGS="ignore" flake8 --ignore=B,C,E,F,I,N,W --select=E101,E112,E113,E115,E116,E125,E129,E131,E133,E223,E224,E242,E266,E271,E272,E273,E274,E275,E304,E306,E401,E402,E502,E701,E702,E703,E711,E714,E721,E741,E742,E743,E901,E902,F401,F402,F403,F404,F405,F406,F407,F601,F602,F621,F622,F631,F701,F702,F703,F704,F705,F706,F707,F811,F812,F821,F822,F823,F831,F841,W191,W291,W292,W293,W504,W601,W602,W603,W604,W605,W606 "${@:-.}"