Browse Source

[qa] Use python2/3 syntax

0.13
MarcoFalke 9 years ago
parent
commit
fa524d9ddb
  1. 8
      qa/pull-tester/rpc-tests.py
  2. 4
      qa/rpc-tests/bip65-cltv-p2p.py
  3. 6
      qa/rpc-tests/bip68-112-113-p2p.py
  4. 6
      qa/rpc-tests/bip9-softforks.py
  5. 4
      qa/rpc-tests/bipdersig-p2p.py
  6. 4
      qa/rpc-tests/decodescript.py
  7. 4
      qa/rpc-tests/disablewallet.py
  8. 8
      qa/rpc-tests/fundrawtransaction.py
  9. 4
      qa/rpc-tests/importprunedfunds.py
  10. 6
      qa/rpc-tests/keypool.py
  11. 4
      qa/rpc-tests/listtransactions.py
  12. 2
      qa/rpc-tests/rawtransactions.py
  13. 9
      qa/rpc-tests/rest.py
  14. 2
      qa/rpc-tests/smartfees.py
  15. 7
      qa/rpc-tests/test_framework/blockstore.py
  16. 4
      qa/rpc-tests/test_framework/blocktools.py
  17. 6
      qa/rpc-tests/test_framework/comptool.py
  18. 51
      qa/rpc-tests/test_framework/mininode.py
  19. 2
      qa/rpc-tests/test_framework/socks5.py
  20. 4
      qa/rpc-tests/test_framework/test_framework.py
  21. 6
      qa/rpc-tests/wallet.py

8
qa/pull-tester/rpc-tests.py

@ -32,13 +32,13 @@ import re
from tests_config import * from tests_config import *
#If imported values are not defined then set to zero (or disabled) #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 ENABLE_WALLET=0
if not vars().has_key('ENABLE_BITCOIND'): if 'ENABLE_BITCOIND' not in vars():
ENABLE_BITCOIND=0 ENABLE_BITCOIND=0
if not vars().has_key('ENABLE_UTILS'): if 'ENABLE_UTILS' not in vars():
ENABLE_UTILS=0 ENABLE_UTILS=0
if not vars().has_key('ENABLE_ZMQ'): if 'ENABLE_ZMQ' not in vars():
ENABLE_ZMQ=0 ENABLE_ZMQ=0
# python-zmq may not be installed. Handle this gracefully and with some helpful info # python-zmq may not be installed. Handle this gracefully and with some helpful info

4
qa/rpc-tests/bip65-cltv-p2p.py

@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager from test_framework.comptool import TestInstance, TestManager
from test_framework.script import CScript, OP_1NEGATE, OP_CHECKLOCKTIMEVERIFY, OP_DROP from test_framework.script import CScript, OP_1NEGATE, OP_CHECKLOCKTIMEVERIFY, OP_DROP
from binascii import unhexlify from binascii import unhexlify
import cStringIO from io import BytesIO
import time import time
def cltv_invalidate(tx): def cltv_invalidate(tx):
@ -60,7 +60,7 @@ class BIP65Test(ComparisonTestFramework):
rawtx = node.createrawtransaction(inputs, outputs) rawtx = node.createrawtransaction(inputs, outputs)
signresult = node.signrawtransaction(rawtx) signresult = node.signrawtransaction(rawtx)
tx = CTransaction() tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex'])) f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f) tx.deserialize(f)
return tx return tx

6
qa/rpc-tests/bip68-112-113-p2p.py

@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager from test_framework.comptool import TestInstance, TestManager
from test_framework.script import * from test_framework.script import *
from binascii import unhexlify from binascii import unhexlify
import cStringIO from io import BytesIO
import time import time
''' '''
@ -119,7 +119,7 @@ class BIP68_112_113Test(ComparisonTestFramework):
outputs = { to_address : amount } outputs = { to_address : amount }
rawtx = node.createrawtransaction(inputs, outputs) rawtx = node.createrawtransaction(inputs, outputs)
tx = CTransaction() tx = CTransaction()
f = cStringIO.StringIO(unhexlify(rawtx)) f = BytesIO(unhexlify(rawtx))
tx.deserialize(f) tx.deserialize(f)
return tx return tx
@ -127,7 +127,7 @@ class BIP68_112_113Test(ComparisonTestFramework):
rawtx = ToHex(unsignedtx) rawtx = ToHex(unsignedtx)
signresult = node.signrawtransaction(rawtx) signresult = node.signrawtransaction(rawtx)
tx = CTransaction() tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex'])) f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f) tx.deserialize(f)
return tx return tx

6
qa/rpc-tests/bip9-softforks.py

@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager from test_framework.comptool import TestInstance, TestManager
from test_framework.script import CScript, OP_1NEGATE, OP_NOP3, OP_DROP from test_framework.script import CScript, OP_1NEGATE, OP_NOP3, OP_DROP
from binascii import hexlify, unhexlify from binascii import hexlify, unhexlify
import cStringIO from io import BytesIO
import time import time
import itertools import itertools
@ -53,7 +53,7 @@ class BIP9SoftForksTest(ComparisonTestFramework):
outputs = { to_address : amount } outputs = { to_address : amount }
rawtx = node.createrawtransaction(inputs, outputs) rawtx = node.createrawtransaction(inputs, outputs)
tx = CTransaction() tx = CTransaction()
f = cStringIO.StringIO(unhexlify(rawtx)) f = BytesIO(unhexlify(rawtx))
tx.deserialize(f) tx.deserialize(f)
tx.nVersion = 2 tx.nVersion = 2
return tx return tx
@ -61,7 +61,7 @@ class BIP9SoftForksTest(ComparisonTestFramework):
def sign_transaction(self, node, tx): def sign_transaction(self, node, tx):
signresult = node.signrawtransaction(hexlify(tx.serialize())) signresult = node.signrawtransaction(hexlify(tx.serialize()))
tx = CTransaction() tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex'])) f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f) tx.deserialize(f)
return tx return tx

4
qa/rpc-tests/bipdersig-p2p.py

@ -11,7 +11,7 @@ from test_framework.blocktools import create_coinbase, create_block
from test_framework.comptool import TestInstance, TestManager from test_framework.comptool import TestInstance, TestManager
from test_framework.script import CScript from test_framework.script import CScript
from binascii import unhexlify from binascii import unhexlify
import cStringIO from io import BytesIO
import time import time
# A canonical signature consists of: # A canonical signature consists of:
@ -68,7 +68,7 @@ class BIP66Test(ComparisonTestFramework):
rawtx = node.createrawtransaction(inputs, outputs) rawtx = node.createrawtransaction(inputs, outputs)
signresult = node.signrawtransaction(rawtx) signresult = node.signrawtransaction(rawtx)
tx = CTransaction() tx = CTransaction()
f = cStringIO.StringIO(unhexlify(signresult['hex'])) f = BytesIO(unhexlify(signresult['hex']))
tx.deserialize(f) tx.deserialize(f)
return tx return tx

4
qa/rpc-tests/decodescript.py

@ -7,7 +7,7 @@ from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import * from test_framework.util import *
from test_framework.mininode import * from test_framework.mininode import *
from binascii import hexlify, unhexlify from binascii import hexlify, unhexlify
from cStringIO import StringIO from io import BytesIO
class DecodeScriptTest(BitcoinTestFramework): class DecodeScriptTest(BitcoinTestFramework):
"""Tests decoding scripts via RPC command "decodescript".""" """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_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']) assert_equal('OP_HASH160 2a5edea39971049a540474c6a99edf0aa4074c58 OP_EQUAL', rpc_result['vout'][1]['scriptPubKey']['asm'])
txSave = CTransaction() 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 # 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' tx = '01000000015ded05872fdbda629c7d3d02b194763ce3b9b1535ea884e3c8e765d42e316724020000006b48304502204c10d4064885c42638cbff3585915b322de33762598321145ba033fc796971e2022100bb153ad3baa8b757e30a2175bd32852d2e1cb9080f84d7e32fcdfd667934ef1b012103163c0ff73511ea1743fb5b98384a2ff09dd06949488028fd819f4d83f56264efffffffff0200000000000000000b6a0930060201000201000180380100000000001976a9141cabd296e753837c086da7a45a6c2fe0d49d7b7b88ac00000000'

4
qa/rpc-tests/disablewallet.py

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

8
qa/rpc-tests/fundrawtransaction.py

@ -209,7 +209,7 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingOuts = 0 matchingOuts = 0
for i, out in enumerate(dec_tx['vout']): for i, out in enumerate(dec_tx['vout']):
totalOut += out['value'] totalOut += out['value']
if outputs.has_key(out['scriptPubKey']['addresses'][0]): if out['scriptPubKey']['addresses'][0] in outputs:
matchingOuts+=1 matchingOuts+=1
else: else:
assert_equal(i, rawtxfund['changepos']) assert_equal(i, rawtxfund['changepos'])
@ -249,7 +249,7 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingOuts = 0 matchingOuts = 0
for out in dec_tx['vout']: for out in dec_tx['vout']:
totalOut += out['value'] totalOut += out['value']
if outputs.has_key(out['scriptPubKey']['addresses'][0]): if out['scriptPubKey']['addresses'][0] in outputs:
matchingOuts+=1 matchingOuts+=1
assert_equal(matchingOuts, 1) assert_equal(matchingOuts, 1)
@ -291,7 +291,7 @@ class RawTransactionsTest(BitcoinTestFramework):
matchingOuts = 0 matchingOuts = 0
for out in dec_tx['vout']: for out in dec_tx['vout']:
totalOut += out['value'] totalOut += out['value']
if outputs.has_key(out['scriptPubKey']['addresses'][0]): if out['scriptPubKey']['addresses'][0] in outputs:
matchingOuts+=1 matchingOuts+=1
assert_equal(matchingOuts, 2) assert_equal(matchingOuts, 2)
@ -309,7 +309,7 @@ class RawTransactionsTest(BitcoinTestFramework):
try: try:
rawtxfund = self.nodes[2].fundrawtransaction(rawtx) rawtxfund = self.nodes[2].fundrawtransaction(rawtx)
raise AssertionError("Spent more than available") raise AssertionError("Spent more than available")
except JSONRPCException,e: except JSONRPCException as e:
assert("Insufficient" in e.error['message']) assert("Insufficient" in e.error['message'])

4
qa/rpc-tests/importprunedfunds.py

@ -82,7 +82,7 @@ class ImportPrunedFundsTest(BitcoinTestFramework):
#Import with no affiliated address #Import with no affiliated address
try: try:
result1 = self.nodes[1].importprunedfunds(rawtxn1, proof1, "") result1 = self.nodes[1].importprunedfunds(rawtxn1, proof1, "")
except JSONRPCException,e: except JSONRPCException as e:
errorString = e.error['message'] errorString = e.error['message']
assert('No addresses' in errorString) assert('No addresses' in errorString)
@ -119,7 +119,7 @@ class ImportPrunedFundsTest(BitcoinTestFramework):
try: try:
self.nodes[1].removeprunedfunds(txnid1) self.nodes[1].removeprunedfunds(txnid1)
except JSONRPCException,e: except JSONRPCException as e:
errorString = e.error['message'] errorString = e.error['message']
assert('does not exist' in errorString) assert('does not exist' in errorString)

6
qa/rpc-tests/keypool.py

@ -46,7 +46,7 @@ class KeyPoolTest(BitcoinTestFramework):
try: try:
addr = nodes[0].getnewaddress() addr = nodes[0].getnewaddress()
raise AssertionError('Keypool should be exhausted after one address') raise AssertionError('Keypool should be exhausted after one address')
except JSONRPCException,e: except JSONRPCException as e:
assert(e.error['code']==-12) assert(e.error['code']==-12)
# put three new keys in the keypool # put three new keys in the keypool
@ -66,7 +66,7 @@ class KeyPoolTest(BitcoinTestFramework):
try: try:
addr = nodes[0].getrawchangeaddress() addr = nodes[0].getrawchangeaddress()
raise AssertionError('Keypool should be exhausted after three addresses') raise AssertionError('Keypool should be exhausted after three addresses')
except JSONRPCException,e: except JSONRPCException as e:
assert(e.error['code']==-12) assert(e.error['code']==-12)
# refill keypool with three new addresses # refill keypool with three new addresses
@ -84,7 +84,7 @@ class KeyPoolTest(BitcoinTestFramework):
try: try:
nodes[0].generate(1) nodes[0].generate(1)
raise AssertionError('Keypool should be exhausted after three addesses') raise AssertionError('Keypool should be exhausted after three addesses')
except JSONRPCException,e: except JSONRPCException as e:
assert(e.error['code']==-12) assert(e.error['code']==-12)
def setup_chain(self): def setup_chain(self):

4
qa/rpc-tests/listtransactions.py

@ -8,12 +8,12 @@
from test_framework.test_framework import BitcoinTestFramework from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import * from test_framework.util import *
from test_framework.mininode import CTransaction, COIN from test_framework.mininode import CTransaction, COIN
import cStringIO from io import BytesIO
import binascii import binascii
def txFromHex(hexstring): def txFromHex(hexstring):
tx = CTransaction() tx = CTransaction()
f = cStringIO.StringIO(binascii.unhexlify(hexstring)) f = BytesIO(binascii.unhexlify(hexstring))
tx.deserialize(f) tx.deserialize(f)
return tx return tx

2
qa/rpc-tests/rawtransactions.py

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

9
qa/rpc-tests/rest.py

@ -11,8 +11,9 @@
from test_framework.test_framework import BitcoinTestFramework from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import * from test_framework.util import *
from struct import * from struct import *
from io import BytesIO
from codecs import encode
import binascii import binascii
import StringIO
try: try:
import http.client as httplib import http.client as httplib
@ -146,7 +147,7 @@ class RESTTest (BitcoinTestFramework):
binaryRequest += pack("i", 0) binaryRequest += pack("i", 0)
bin_response = http_post_call(url.hostname, url.port, '/rest/getutxos'+self.FORMAT_SEPARATOR+'bin', binaryRequest) 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.write(bin_response)
output.seek(0) output.seek(0)
chainHeight = unpack("i", output.read(4))[0] chainHeight = unpack("i", output.read(4))[0]
@ -233,7 +234,7 @@ class RESTTest (BitcoinTestFramework):
assert_equal(response_hex.status, 200) assert_equal(response_hex.status, 200)
assert_greater_than(int(response_hex.getheader('content-length')), 160) assert_greater_than(int(response_hex.getheader('content-length')), 160)
response_hex_str = response_hex.read() 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 # 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) 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) assert_greater_than(int(response_header_hex.getheader('content-length')), 160)
response_header_hex_str = response_header_hex.read() response_header_hex_str = response_header_hex.read()
assert_equal(response_hex_str[0:160], response_header_hex_str[0:160]) 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 # check json format
block_json_string = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+'json') block_json_string = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+'json')

2
qa/rpc-tests/smartfees.py

@ -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]]) print([str(all_estimates[e-1]) for e in [1,2,3,6,15,25]])
delta = 1.0e-6 # account for rounding error delta = 1.0e-6 # account for rounding error
last_e = max(fees_seen) 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: # 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): if float(e)+delta < min(fees_seen) or float(e)-delta > max(fees_seen):
raise AssertionError("Estimated fee (%f) out of range (%f,%f)" raise AssertionError("Estimated fee (%f) out of range (%f,%f)"

7
qa/rpc-tests/test_framework/blockstore.py

@ -3,8 +3,9 @@
# and for constructing a getheaders message # and for constructing a getheaders message
# #
from mininode import * from .mininode import *
import dbm import dbm
from io import BytesIO
class BlockStore(object): class BlockStore(object):
def __init__(self, datadir): def __init__(self, datadir):
@ -21,7 +22,7 @@ class BlockStore(object):
serialized_block = self.blockDB[repr(blockhash)] serialized_block = self.blockDB[repr(blockhash)]
except KeyError: except KeyError:
return None return None
f = cStringIO.StringIO(serialized_block) f = BytesIO(serialized_block)
ret = CBlock() ret = CBlock()
ret.deserialize(f) ret.deserialize(f)
ret.calc_sha256() ret.calc_sha256()
@ -115,7 +116,7 @@ class TxStore(object):
serialized_tx = self.txDB[repr(txhash)] serialized_tx = self.txDB[repr(txhash)]
except KeyError: except KeyError:
return None return None
f = cStringIO.StringIO(serialized_tx) f = BytesIO(serialized_tx)
ret = CTransaction() ret = CTransaction()
ret.deserialize(f) ret.deserialize(f)
ret.calc_sha256() ret.calc_sha256()

4
qa/rpc-tests/test_framework/blocktools.py

@ -4,8 +4,8 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
# #
from mininode import * from .mininode import *
from script import CScript, OP_TRUE, OP_CHECKSIG from .script import CScript, OP_TRUE, OP_CHECKSIG
# Create a block (with regtest difficulty) # Create a block (with regtest difficulty)
def create_block(hashprev, coinbase, nTime=None): def create_block(hashprev, coinbase, nTime=None):

6
qa/rpc-tests/test_framework/comptool.py

@ -4,9 +4,9 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
# #
from mininode import * from .mininode import *
from blockstore import BlockStore, TxStore from .blockstore import BlockStore, TxStore
from util import p2p_port from .util import p2p_port
''' '''
This is a tool for comparing two or more bitcoinds to each other This is a tool for comparing two or more bitcoinds to each other

51
qa/rpc-tests/test_framework/mininode.py

@ -24,7 +24,8 @@ import binascii
import time import time
import sys import sys
import random import random
import cStringIO from io import BytesIO
from codecs import encode
import hashlib import hashlib
from threading import RLock from threading import RLock
from threading import Thread from threading import Thread
@ -75,12 +76,12 @@ def deser_string(f):
def ser_string(s): def ser_string(s):
if len(s) < 253: if len(s) < 253:
return chr(len(s)) + s return struct.pack("B", len(s)) + s
elif len(s) < 0x10000: 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: elif len(s) < 0x100000000L:
return chr(254) + struct.pack("<I", len(s)) + s return struct.pack("B", 254) + struct.pack("<I", len(s)) + s
return chr(255) + struct.pack("<Q", len(s)) + s return struct.pack("B", 255) + struct.pack("<Q", len(s)) + s
def deser_uint256(f): def deser_uint256(f):
@ -132,13 +133,13 @@ def deser_vector(f, c):
def ser_vector(l): def ser_vector(l):
r = "" r = ""
if len(l) < 253: if len(l) < 253:
r = chr(len(l)) r = struct.pack("B", len(l))
elif len(l) < 0x10000: 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: elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l)) r = struct.pack("B", 254) + struct.pack("<I", len(l))
else: else:
r = chr(255) + struct.pack("<Q", len(l)) r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for i in l: for i in l:
r += i.serialize() r += i.serialize()
return r return r
@ -162,13 +163,13 @@ def deser_uint256_vector(f):
def ser_uint256_vector(l): def ser_uint256_vector(l):
r = "" r = ""
if len(l) < 253: if len(l) < 253:
r = chr(len(l)) r = struct.pack("B", len(l))
elif len(l) < 0x10000: 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: elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l)) r = struct.pack("B", 254) + struct.pack("<I", len(l))
else: else:
r = chr(255) + struct.pack("<Q", len(l)) r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for i in l: for i in l:
r += ser_uint256(i) r += ser_uint256(i)
return r return r
@ -192,13 +193,13 @@ def deser_string_vector(f):
def ser_string_vector(l): def ser_string_vector(l):
r = "" r = ""
if len(l) < 253: if len(l) < 253:
r = chr(len(l)) r = struct.pack("B", len(l))
elif len(l) < 0x10000: 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: elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l)) r = struct.pack("B", 254) + struct.pack("<I", len(l))
else: else:
r = chr(255) + struct.pack("<Q", len(l)) r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for sv in l: for sv in l:
r += ser_string(sv) r += ser_string(sv)
return r return r
@ -222,20 +223,20 @@ def deser_int_vector(f):
def ser_int_vector(l): def ser_int_vector(l):
r = "" r = ""
if len(l) < 253: if len(l) < 253:
r = chr(len(l)) r = struct.pack("B", len(l))
elif len(l) < 0x10000: 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: elif len(l) < 0x100000000L:
r = chr(254) + struct.pack("<I", len(l)) r = struct.pack("B", 254) + struct.pack("<I", len(l))
else: else:
r = chr(255) + struct.pack("<Q", len(l)) r = struct.pack("B", 255) + struct.pack("<Q", len(l))
for i in l: for i in l:
r += struct.pack("<i", i) r += struct.pack("<i", i)
return r return r
# Deserialize from a hex string representation (eg from RPC) # Deserialize from a hex string representation (eg from RPC)
def FromHex(obj, hex_string): def FromHex(obj, hex_string):
obj.deserialize(cStringIO.StringIO(binascii.unhexlify(hex_string))) obj.deserialize(BytesIO(binascii.unhexlify(hex_string)))
return obj return obj
# Convert a binary-serializable object to hex (eg for submission via RPC) # Convert a binary-serializable object to hex (eg for submission via RPC)
@ -423,7 +424,7 @@ class CTransaction(object):
def calc_sha256(self): def calc_sha256(self):
if self.sha256 is None: if self.sha256 is None:
self.sha256 = uint256_from_str(hash256(self.serialize())) 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): def is_valid(self):
self.calc_sha256() self.calc_sha256()
@ -492,7 +493,7 @@ class CBlockHeader(object):
r += struct.pack("<I", self.nBits) r += struct.pack("<I", self.nBits)
r += struct.pack("<I", self.nNonce) r += struct.pack("<I", self.nNonce)
self.sha256 = uint256_from_str(hash256(r)) 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): def rehash(self):
self.sha256 = None self.sha256 = None
@ -1281,7 +1282,7 @@ class NodeConn(asyncore.dispatcher):
raise ValueError("got bad checksum " + repr(self.recvbuf)) raise ValueError("got bad checksum " + repr(self.recvbuf))
self.recvbuf = self.recvbuf[4+12+4+4+msglen:] self.recvbuf = self.recvbuf[4+12+4+4+msglen:]
if command in self.messagemap: if command in self.messagemap:
f = cStringIO.StringIO(msg) f = BytesIO(msg)
t = self.messagemap[command]() t = self.messagemap[command]()
t.deserialize(f) t.deserialize(f)
self.got_message(t) self.got_message(t)

2
qa/rpc-tests/test_framework/socks5.py

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

4
qa/rpc-tests/test_framework/test_framework.py

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

6
qa/rpc-tests/wallet.py

@ -249,7 +249,7 @@ class WalletTest (BitcoinTestFramework):
errorString = "" errorString = ""
try: try:
txId = self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), "1f-4") txId = self.nodes[0].sendtoaddress(self.nodes[2].getnewaddress(), "1f-4")
except JSONRPCException,e: except JSONRPCException as e:
errorString = e.error['message'] errorString = e.error['message']
assert("Invalid amount" in errorString) assert("Invalid amount" in errorString)
@ -257,7 +257,7 @@ class WalletTest (BitcoinTestFramework):
errorString = "" errorString = ""
try: try:
self.nodes[0].generate("2") #use a string to as block amount parameter must fail because it's not interpreted as amount 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'] errorString = e.error['message']
assert("not an integer" in errorString) assert("not an integer" in errorString)
@ -271,7 +271,7 @@ class WalletTest (BitcoinTestFramework):
# Check that the txid and balance is found by node1 # Check that the txid and balance is found by node1
try: try:
self.nodes[1].gettransaction(cbTxId) self.nodes[1].gettransaction(cbTxId)
except JSONRPCException,e: except JSONRPCException as e:
assert("Invalid or non-wallet transaction id" not in e.error['message']) assert("Invalid or non-wallet transaction id" not in e.error['message'])
#check if wallet or blochchain maintenance changes the balance #check if wallet or blochchain maintenance changes the balance

Loading…
Cancel
Save