@ -23,6 +23,7 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
self . is_network_split = False
self . sync_all ( )
# Returns txid if operation was a success or None
def wait_and_assert_operationid_status ( self , myopid , in_status = ' success ' , in_errormsg = None ) :
print ( ' waiting for async operation {} ' . format ( myopid ) )
opids = [ ]
@ -30,6 +31,7 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
timeout = 120
status = None
errormsg = None
txid = None
for x in xrange ( 1 , timeout ) :
results = self . nodes [ 0 ] . z_getoperationresult ( opids )
if len ( results ) == 0 :
@ -38,6 +40,8 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
status = results [ 0 ] [ " status " ]
if status == " failed " :
errormsg = results [ 0 ] [ ' error ' ] [ ' message ' ]
elif status == " success " :
txid = results [ 0 ] [ ' result ' ] [ ' txid ' ]
break
print ( ' ...returned status: {} ' . format ( status ) )
assert_equal ( in_status , status )
@ -45,6 +49,7 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
assert ( in_errormsg is not None )
assert_equal ( in_errormsg in errormsg , True )
print ( ' ...returned error: {} ' . format ( errormsg ) )
return txid
def run_test ( self ) :
print " Mining blocks... "
@ -116,8 +121,14 @@ class WalletProtectCoinbaseTest (BitcoinTestFramework):
recipients = [ ]
recipients . append ( { " address " : mytaddr , " amount " : Decimal ( ' 10.0 ' ) } )
myopid = self . nodes [ 0 ] . z_sendmany ( myzaddr , recipients )
self . wait_and_assert_operationid_status ( myopid )
mytxid = self . wait_and_assert_operationid_status ( myopid )
assert ( mytxid is not None )
self . sync_all ( )
# check that priority of the tx sending from a zaddr is not 0
mempool = self . nodes [ 0 ] . getrawmempool ( True )
assert ( Decimal ( mempool [ mytxid ] [ ' startingpriority ' ] ) > = Decimal ( ' 1000000000000 ' ) )
self . nodes [ 1 ] . generate ( 1 )
self . sync_all ( )