Update json to simplejson to remove unicode and str issue from py2 to py3

This commit is contained in:
mdr0id 2020-01-08 06:53:34 -08:00
parent 3eb6512b78
commit c7113bd6f1
3 changed files with 18 additions and 20 deletions

View File

@ -35,7 +35,7 @@
import base64
import decimal
import json
import simplejson as json
import logging
from http.client import HTTPConnection, HTTPSConnection, BadStatusLine
from urllib.parse import urlparse
@ -52,11 +52,7 @@ class JSONRPCException(Exception):
self.error = rpc_error
def EncodeDecimal(o):
#print(repr(o))
#print(type(o))
#print(type(decimal.Decimal))
if isinstance(o, decimal.Decimal):
#print("isinstance Decimal")
return str(o)
raise TypeError(repr(o) + " is not JSON serializable")

View File

@ -36,11 +36,13 @@ class WalletChangeAddressesTest(BitcoinTestFramework):
def run_test(self):
self.nodes[0].generate(110)
# Obtain some transparent funds
midAddr = self.nodes[0].z_getnewaddress('sapling')
myopid = self.nodes[0].z_shieldcoinbase(get_coinbase_address(self.nodes[0]), midAddr, 0)['opid']
wait_and_assert_operationid_status(self.nodes[0], myopid)
self.sync_all()
self.nodes[1].generate(1)
self.sync_all()
taddrSource = self.nodes[0].getnewaddress()

View File

@ -62,44 +62,44 @@ class WalletShieldCoinbaseTest (BitcoinTestFramework):
self.nodes[2].importaddress(mytaddr)
try:
self.nodes[2].z_shieldcoinbase(mytaddr, myzaddr)
fail("Expected JSONRPCException not raised!")
except JSONRPCException as e:
assert_equal("Could not find any coinbase funds to shield" in e.error['message'], True)
errorString = e.error['message']
assert_equal("Could not find any coinbase funds to shield" in errorString, True)
# Shielding will fail because fee is negative
try:
self.nodes[0].z_shieldcoinbase("*", myzaddr, -1)
fail("Expected JSONRPCException not raised!")
except JSONRPCException as e:
assert_equal("Amount out of range" in e.error['message'], True)
print("tHERE")
errorString = e.error['message']
assert_equal("Amount out of range" in errorString, True)
# Shielding will fail because fee is larger than MAX_MONEY
try:
self.nodes[0].z_shieldcoinbase("*", myzaddr, Decimal('21000000.00000001'))
fail("Expected JSONRPCException not raised!")
except JSONRPCException as e:
assert_equal("Amount out of range" in e.error['message'], True)
print("HERE")
errorString = e.error['message']
assert_equal("Amount out of range" in errorString, True)
# Shielding will fail because fee is larger than sum of utxos
try:
self.nodes[0].z_shieldcoinbase("*", myzaddr, 999)
fail("Expected JSONRPCException not raised!")
except JSONRPCException as e:
assert_equal("Insufficient coinbase funds" in e.error['message'], True)
errorString = e.error['message']
assert_equal("Insufficient coinbase funds" in errorString, True)
# Shielding will fail because limit parameter must be at least 0
try:
self.nodes[0].z_shieldcoinbase("*", myzaddr, Decimal('0.001'), -1)
fail("Expected JSONRPCException not raised!")
except JSONRPCException as e:
assert_equal("Limit on maximum number of utxos cannot be negative" in e.error['message'], True)
errorString = e.error['message']
assert_equal("Limit on maximum number of utxos cannot be negative" in errorString, True)
# Shielding will fail because limit parameter is absurdly large
try:
self.nodes[0].z_shieldcoinbase("*", myzaddr, Decimal('0.001'), 99999999999999)
fail("Expected JSONRPCException not raised!")
except JSONRPCException as e:
assert_equal("JSON integer out of range" in e.error['message'], True)
errorString = e.error['message']
assert_equal("JSON integer out of range" in errorString, True)
# Shield coinbase utxos from node 0 of value 40, standard fee of 0.00010000
result = self.nodes[0].z_shieldcoinbase(mytaddr, myzaddr)