Browse Source

[qa] Use python2/3 syntax

tags/v0.15.1
MarcoFalke 5 years ago
parent
commit
fa524d9ddb

+ 4
- 4
qa/pull-tester/rpc-tests.py View File

@@ -32,13 +32,13 @@ import re
from tests_config import *

#If imported values are not defined then set to zero (or disabled)
if not vars().has_key('ENABLE_WALLET'):
if 'ENABLE_WALLET' not in vars():
ENABLE_WALLET=0
if not vars().has_key('ENABLE_BITCOIND'):
if 'ENABLE_BITCOIND' not in vars():
ENABLE_BITCOIND=0
if not vars().has_key('ENABLE_UTILS'):
if 'ENABLE_UTILS' not in vars():
ENABLE_UTILS=0
if not vars().has_key('ENABLE_ZMQ'):
if 'ENABLE_ZMQ' not in vars():
ENABLE_ZMQ=0
# python-zmq may not be installed. Handle this gracefully and with some helpful info

+ 2
- 2
qa/rpc-tests/bip65-cltv-p2p.py View File

@@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager
from test_framework.script import CScript, OP_1NEGATE, OP_CHECKLOCKTIMEVERIFY, OP_DROP
from binascii import unhexlify
import cStringIO
from io import BytesIO
import time

def cltv_invalidate(tx):
@@ -60,7 +60,7 @@ class BIP65Test(ComparisonTestFramework):
rawtx = node.createrawtransaction(inputs, outputs)
signresult = node.signrawtransaction(rawtx)
tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex']))
f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f)
return tx


+ 3
- 3
qa/rpc-tests/bip68-112-113-p2p.py View File

@@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager
from test_framework.script import *
from binascii import unhexlify
import cStringIO
from io import BytesIO
import time

'''
@@ -119,7 +119,7 @@ class BIP68_112_113Test(ComparisonTestFramework):
outputs = { to_address : amount }
rawtx = node.createrawtransaction(inputs, outputs)
tx = CTransaction()
f = cStringIO.StringIO(unhexlify(rawtx))
f = BytesIO(unhexlify(rawtx))
tx.deserialize(f)
return tx

@@ -127,7 +127,7 @@ class BIP68_112_113Test(ComparisonTestFramework):
rawtx = ToHex(unsignedtx)
signresult = node.signrawtransaction(rawtx)
tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex']))
f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f)
return tx


+ 4
- 4
qa/rpc-tests/bip9-softforks.py View File

@@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager
from test_framework.script import CScript, OP_1NEGATE, OP_NOP3, OP_DROP
from binascii import hexlify, unhexlify
import cStringIO
from io import BytesIO
import time
import itertools

@@ -53,7 +53,7 @@ class BIP9SoftForksTest(ComparisonTestFramework):
outputs = { to_address : amount }
rawtx = node.createrawtransaction(inputs, outputs)
tx = CTransaction()
f = cStringIO.StringIO(unhexlify(rawtx))
f = BytesIO(unhexlify(rawtx))
tx.deserialize(f)
tx.nVersion = 2
return tx
@@ -61,7 +61,7 @@ class BIP9SoftForksTest(ComparisonTestFramework):
def sign_transaction(self, node, tx):
signresult = node.signrawtransaction(hexlify(tx.serialize()))
tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex']))
f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f)
return tx

@@ -217,4 +217,4 @@ class BIP9SoftForksTest(ComparisonTestFramework):
tx.nLockTime = self.last_block_time

if __name__ == '__main__':
BIP9SoftForksTest().main()
BIP9SoftForksTest().main()

+ 2
- 2
qa/rpc-tests/bipdersig-p2p.py View File

@@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager
from test_framework.script import CScript
from binascii import unhexlify
import cStringIO
from io import BytesIO
import time

# A canonical signature consists of:
@@ -68,7 +68,7 @@ class BIP66Test(ComparisonTestFramework):
rawtx = node.createrawtransaction(inputs, outputs)
signresult = node.signrawtransaction(rawtx)
tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex']))
f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f)
return tx


+ 2
- 2
qa/rpc-tests/decodescript.py View File

@@ -7,7 +7,7 @@ from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import *
from test_framework.mininode import *
from binascii import hexlify, unhexlify
from cStringIO import StringIO
from io import BytesIO

class DecodeScriptTest(BitcoinTestFramework):
"""Tests decoding scripts via RPC command "decodescript"."""
@@ -131,7 +131,7 @@ class DecodeScriptTest(BitcoinTestFramework):
assert_equal('OP_DUP OP_HASH160 dc863734a218bfe83ef770ee9d41a27f824a6e56 OP_EQUALVERIFY OP_CHECKSIG', rpc_result['vout'][0]['scriptPubKey']['asm'])
assert_equal('OP_HASH160 2a5edea39971049a540474c6a99edf0aa4074c58 OP_EQUAL', rpc_result['vout'][1]['scriptPubKey']['asm'])
txSave = CTransaction()
txSave.deserialize(StringIO(unhexlify(tx)))
txSave.deserialize(BytesIO(unhexlify(tx)))

# make sure that a specifically crafted op_return value will not pass all the IsDERSignature checks and then get decoded as a sighash type
tx = '01000000015ded05872fdbda629c7d3d02b194763ce3b9b1535ea884e3c8e765d42e316724020000006b48304502204c10d4064885c42638cbff3585915b322de33762598321145ba033fc796971e2022100bb153ad3baa8b757e30a2175bd32852d2e1cb9080f84d7e32fcdfd667934ef1b012103163c0ff73511ea1743fb5b98384a2ff09dd06949488028fd819f4d83f56264efffffffff0200000000000000000b6a0930060201000201000180380100000000001976a9141cabd296e753837c086da7a45a6c2fe0d49d7b7b88ac00000000'

+ 2
- 2
qa/rpc-tests/disablewallet.py View File

@@ -32,7 +32,7 @@ class DisableWalletTest (BitcoinTestFramework):
# Checking mining to an address without a wallet
try:
self.nodes[0].generatetoaddress(1, 'mneYUmWYsuk7kySiURxCi3AGxrAqZxLgPZ')
except JSONRPCException,e:
except JSONRPCException as e:
assert("Invalid address" not in e.error['message'])
assert("ProcessNewBlock, block not accepted" not in e.error['message'])
assert("Couldn't create new block" not in e.error['message'])
@@ -40,7 +40,7 @@ class DisableWalletTest (BitcoinTestFramework):
try:
self.nodes[0].generatetoaddress(1, '3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy')
raise AssertionError("Must not mine to invalid address!")
except JSONRPCException,e:
except JSONRPCException as e:
assert("Invalid address" in e.error['message'])

if __name__ == '__main__':

+ 4
- 4
qa/rpc-tests/fundrawtransaction.py View File

@@ -209,7 +209,7 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingOuts = 0
for i, out in enumerate(dec_tx['vout']):
totalOut += out['value']
if outputs.has_key(out['scriptPubKey']['addresses'][0]):
if out['scriptPubKey']['addresses'][0] in outputs:
matchingOuts+=1
else:
assert_equal(i, rawtxfund['changepos'])
@@ -249,7 +249,7 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingOuts = 0
for out in dec_tx['vout']:
totalOut += out['value']
if outputs.has_key(out['scriptPubKey']['addresses'][0]):
if out['scriptPubKey']['addresses'][0] in outputs:
matchingOuts+=1

assert_equal(matchingOuts, 1)
@@ -291,7 +291,7 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingOuts = 0
for out in dec_tx['vout']:
totalOut += out['value']
if outputs.has_key(out['scriptPubKey']['addresses'][0]):
if out['scriptPubKey']['addresses'][0] in outputs:
matchingOuts+=1

assert_equal(matchingOuts, 2)
@@ -309,7 +309,7 @@ class RawTransactionsTest(BitcoinTestFramework):
try:
rawtxfund = self.nodes[2].fundrawtransaction(rawtx)
raise AssertionError("Spent more than available")
except JSONRPCException,e:
except JSONRPCException as e:
assert("Insufficient" in e.error['message'])



+ 2
- 2
qa/rpc-tests/importprunedfunds.py View File

@@ -82,7 +82,7 @@ class ImportPrunedFundsTest(BitcoinTestFramework):
#Import with no affiliated address
try:
result1 = self.nodes[1].importprunedfunds(rawtxn1, proof1, "")
except JSONRPCException,e:
except JSONRPCException as e:
errorString = e.error['message']

assert('No addresses' in errorString)
@@ -119,7 +119,7 @@ class ImportPrunedFundsTest(BitcoinTestFramework):

try:
self.nodes[1].removeprunedfunds(txnid1)
except JSONRPCException,e:
except JSONRPCException as e:
errorString = e.error['message']

assert('does not exist' in errorString)

+ 3
- 3
qa/rpc-tests/keypool.py View File

@@ -46,7 +46,7 @@ class KeyPoolTest(BitcoinTestFramework):
try:
addr = nodes[0].getnewaddress()
raise AssertionError('Keypool should be exhausted after one address')
except JSONRPCException,e:
except JSONRPCException as e:
assert(e.error['code']==-12)

# put three new keys in the keypool
@@ -66,7 +66,7 @@ class KeyPoolTest(BitcoinTestFramework):
try:
addr = nodes[0].getrawchangeaddress()
raise AssertionError('Keypool should be exhausted after three addresses')
except JSONRPCException,e:
except JSONRPCException as e:
assert(e.error['code']==-12)

# refill keypool with three new addresses
@@ -84,7 +84,7 @@ class KeyPoolTest(BitcoinTestFramework):
try:
nodes[0].generate(1)
raise AssertionError('Keypool should be exhausted after three addesses')
except JSONRPCException,e:
except JSONRPCException as e:
assert(e.error['code']==-12)

def setup_chain(self):

+ 2
- 2
qa/rpc-tests/listtransactions.py View File

@@ -8,12 +8,12 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import *
from test_framework.mininode import CTransaction, COIN
import cStringIO
from io import BytesIO
import binascii

def txFromHex(hexstring):
tx = CTransaction()
f = cStringIO.StringIO(binascii.unhexlify(hexstring))
f = BytesIO(binascii.unhexlify(hexstring))
tx.deserialize(f)
return tx


+ 1
- 1
qa/rpc-tests/rawtransactions.py View File

@@ -59,7 +59,7 @@ class RawTransactionsTest(BitcoinTestFramework):
errorString = ""
try:
rawtx = self.nodes[2].sendrawtransaction(rawtx['hex'])
except JSONRPCException,e:
except JSONRPCException as e:
errorString = e.error['message']

assert("Missing inputs" in errorString)

+ 5
- 4
qa/rpc-tests/rest.py View File

@@ -11,8 +11,9 @@
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import *
from struct import *
from io import BytesIO
from codecs import encode
import binascii
import StringIO

try:
import http.client as httplib
@@ -146,7 +147,7 @@ class RESTTest (BitcoinTestFramework):
binaryRequest += pack("i", 0)

bin_response = http_post_call(url.hostname, url.port, '/rest/getutxos'+self.FORMAT_SEPARATOR+'bin', binaryRequest)
output = StringIO.StringIO()
output = BytesIO()
output.write(bin_response)
output.seek(0)
chainHeight = unpack("i", output.read(4))[0]
@@ -233,7 +234,7 @@ class RESTTest (BitcoinTestFramework):
assert_equal(response_hex.status, 200)
assert_greater_than(int(response_hex.getheader('content-length')), 160)
response_hex_str = response_hex.read()
assert_equal(response_str.encode("hex")[0:160], response_hex_str[0:160])
assert_equal(encode(response_str, "hex")[0:160], response_hex_str[0:160])

# compare with hex block header
response_header_hex = http_get_call(url.hostname, url.port, '/rest/headers/1/'+bb_hash+self.FORMAT_SEPARATOR+"hex", True)
@@ -241,7 +242,7 @@ class RESTTest (BitcoinTestFramework):
assert_greater_than(int(response_header_hex.getheader('content-length')), 160)
response_header_hex_str = response_header_hex.read()
assert_equal(response_hex_str[0:160], response_header_hex_str[0:160])
assert_equal(response_header_str.encode("hex")[0:160], response_header_hex_str[0:160])
assert_equal(encode(response_header_str, "hex")[0:160], response_header_hex_str[0:160])

# check json format
block_json_string = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+'json')

+ 1
- 1
qa/rpc-tests/smartfees.py View File

@@ -105,7 +105,7 @@ def check_estimates(node, fees_seen, max_invalid, print_estimates = True):
print([str(all_estimates[e-1]) for e in [1,2,3,6,15,25]])
delta = 1.0e-6 # account for rounding error
last_e = max(fees_seen)
for e in filter(lambda x: x >= 0, all_estimates):
for e in [x for x in all_estimates if x >= 0]:
# Estimates should be within the bounds of what transactions fees actually were:
if float(e)+delta < min(fees_seen) or float(e)-delta > max(fees_seen):
raise AssertionError("Estimated fee (%f) out of range (%f,%f)"

+ 4
- 3
qa/rpc-tests/test_framework/blockstore.py View File

@@ -3,8 +3,9 @@
# and for constructing a getheaders message
#

from mininode import *
from .mininode import *
import dbm
from io import BytesIO

class BlockStore(object):
def __init__(self, datadir):
@@ -21,7 +22,7 @@ class BlockStore(object):
serialized_block = self.blockDB[repr(blockhash)]
except KeyError:
return None
f = cStringIO.StringIO(serialized_block)
f = BytesIO(serialized_block)
ret = CBlock()
ret.deserialize(f)
ret.calc_sha256()
@@ -115,7 +116,7 @@ class TxStore(object):
serialized_tx = self.txDB[repr(txhash)]
except KeyError:
return None
f = cStringIO.StringIO(serialized_tx)
f = BytesIO(serialized_tx)
ret = CTransaction()
ret.deserialize(f)
ret.calc_sha256()

+ 2
- 2
qa/rpc-tests/test_framework/blocktools.py View File

@@ -4,8 +4,8 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#

from mininode import *
from script import CScript, OP_TRUE, OP_CHECKSIG
from .mininode import *
from .script import CScript, OP_TRUE, OP_CHECKSIG

# Create a block (with regtest difficulty)
def create_block(hashprev, coinbase, nTime=None):

+ 3
- 3
qa/rpc-tests/test_framework/comptool.py View File

@@ -4,9 +4,9 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#

from mininode import *
from blockstore import BlockStore, TxStore
from util import p2p_port
from .mininode import *
from .blockstore import BlockStore, TxStore
from .util import p2p_port

'''
This is a tool for comparing two or more bitcoinds to each other

+ 26
- 25
qa/rpc-tests/test_framework/mininode.py View File

@@ -24,7 +24,8 @@ import binascii
import time
import sys
import random
import cStringIO
from io import BytesIO
from codecs import encode
import hashlib
from threading import RLock
from threading import Thread
@@ -75,12 +76,12 @@ def deser_string(f):

def ser_string(s):
if len(s) < 253:
return chr(len(s)) + s
return struct.pack("B", len(s)) + s
elif len(s) < 0x10000:
return chr(253) + struct.pack("<H", len(s)) + s
return struct.pack("B", 253) + struct.pack("<H", len(s)) + s
elif len(s) < 0x100000000L:
return chr(254) + struct.pack("<I", len(s)) + s
return chr(255) + struct.pack("<Q", len(s)) + s
return struct.pack("B", 254) + struct.pack("<I", len(s)) + s
return struct.pack("B", 255) + struct.pack("<Q", len(s)) + s


def deser_uint256(f):
@@ -132,13 +133,13 @@ def deser_vector(f, c):
def ser_vector(l):
r = ""
if len(l) < 253:
r = chr(len(l))
r = struct.pack("B", len(l))
elif len(l) < 0x10000:
r = chr(253) + struct.pack("<H", len(l))
r = struct.pack("B", 253) + struct.pack("<H", len(l))
elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l))
r = struct.pack("B", 254) + struct.pack("<I", len(l))
else:
r = chr(255) + struct.pack("<Q", len(l))
r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for i in l:
r += i.serialize()
return r
@@ -162,13 +163,13 @@ def deser_uint256_vector(f):
def ser_uint256_vector(l):
r = ""
if len(l) < 253:
r = chr(len(l))
r = struct.pack("B", len(l))
elif len(l) < 0x10000:
r = chr(253) + struct.pack("<H", len(l))
r = struct.pack("B", 253) + struct.pack("<H", len(l))
elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l))
r = struct.pack("B", 254) + struct.pack("<I", len(l))
else:
r = chr(255) + struct.pack("<Q", len(l))
r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for i in l:
r += ser_uint256(i)
return r
@@ -192,13 +193,13 @@ def deser_string_vector(f):
def ser_string_vector(l):
r = ""
if len(l) < 253:
r = chr(len(l))
r = struct.pack("B", len(l))
elif len(l) < 0x10000:
r = chr(253) + struct.pack("<H", len(l))
r = struct.pack("B", 253) + struct.pack("<H", len(l))
elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l))
r = struct.pack("B", 254) + struct.pack("<I", len(l))
else:
r = chr(255) + struct.pack("<Q", len(l))
r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for sv in l:
r += ser_string(sv)
return r
@@ -222,20 +223,20 @@ def deser_int_vector(f):
def ser_int_vector(l):
r = ""
if len(l) < 253:
r = chr(len(l))
r = struct.pack("B", len(l))
elif len(l) < 0x10000:
r = chr(253) + struct.pack("<H", len(l))
r = struct.pack("B", 253) + struct.pack("<H", len(l))
elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l))
r = struct.pack("B", 254) + struct.pack("<I", len(l))
else:
r = chr(255) + struct.pack("<Q", len(l))
r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for i in l:
r += struct.pack("<i", i)
return r

# Deserialize from a hex string representation (eg from RPC)
def FromHex(obj, hex_string):
obj.deserialize(cStringIO.StringIO(binascii.unhexlify(hex_string)))
obj.deserialize(BytesIO(binascii.unhexlify(hex_string)))
return obj

# Convert a binary-serializable object to hex (eg for submission via RPC)
@@ -423,7 +424,7 @@ class CTransaction(object):
def calc_sha256(self):
if self.sha256 is None:
self.sha256 = uint256_from_str(hash256(self.serialize()))
self.hash = hash256(self.serialize())[::-1].encode('hex_codec')
self.hash = encode(hash256(self.serialize())[::-1], 'hex')

def is_valid(self):
self.calc_sha256()
@@ -492,7 +493,7 @@ class CBlockHeader(object):
r += struct.pack("<I", self.nBits)
r += struct.pack("<I", self.nNonce)
self.sha256 = uint256_from_str(hash256(r))
self.hash = hash256(r)[::-1].encode('hex_codec')
self.hash = encode(hash256(r)[::-1], 'hex')

def rehash(self):
self.sha256 = None
@@ -1281,7 +1282,7 @@ class NodeConn(asyncore.dispatcher):
raise ValueError("got bad checksum " + repr(self.recvbuf))
self.recvbuf = self.recvbuf[4+12+4+4+msglen:]
if command in self.messagemap:
f = cStringIO.StringIO(msg)
f = BytesIO(msg)
t = self.messagemap[command]()
t.deserialize(f)
self.got_message(t)

+ 1
- 1
qa/rpc-tests/test_framework/socks5.py View File

@@ -117,7 +117,7 @@ class Socks5Connection(object):
self.serv.queue.put(cmdin)
print('Proxy: ', cmdin)
# Fall through to disconnect
except Exception,e:
except Exception as e:
traceback.print_exc(file=sys.stderr)
self.serv.queue.put(e)
finally:

+ 2
- 2
qa/rpc-tests/test_framework/test_framework.py View File

@@ -26,7 +26,7 @@ from .util import (
check_json_precision,
initialize_chain_clean,
)
from authproxy import AuthServiceProxy, JSONRPCException
from .authproxy import AuthServiceProxy, JSONRPCException


class BitcoinTestFramework(object):
@@ -140,7 +140,7 @@ class BitcoinTestFramework(object):
print("JSONRPC error: "+e.error['message'])
traceback.print_tb(sys.exc_info()[2])
except AssertionError as e:
print("Assertion failed: "+e.message)
print("Assertion failed: "+ str(e))
traceback.print_tb(sys.exc_info()[2])
except Exception as e:
print("Unexpected exception caught during testing: "+str(e))

+ 3
- 3
qa/rpc-tests/wallet.py View File

@@ -249,7 +249,7 @@ class WalletTest (BitcoinTestFramework):
errorString = ""
try:
txId = self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), "1f-4")
except JSONRPCException,e:
except JSONRPCException as e:
errorString = e.error['message']

assert("Invalid amount" in errorString)
@@ -257,7 +257,7 @@ class WalletTest (BitcoinTestFramework):
errorString = ""
try:
self.nodes[0].generate("2") #use a string to as block amount parameter must fail because it's not interpreted as amount
except JSONRPCException,e:
except JSONRPCException as e:
errorString = e.error['message']

assert("not an integer" in errorString)
@@ -271,7 +271,7 @@ class WalletTest (BitcoinTestFramework):
# Check that the txid and balance is found by node1
try:
self.nodes[1].gettransaction(cbTxId)
except JSONRPCException,e:
except JSONRPCException as e:
assert("Invalid or non-wallet transaction id" not in e.error['message'])

#check if wallet or blochchain maintenance changes the balance

Loading…
Cancel
Save