[tests] Fix abandonconflict.py intermittency

This commit is contained in:
John Newbery 2017-05-05 13:01:27 -04:00
parent 35da2aeed7
commit 965a124427

View File

@ -10,10 +10,8 @@
which are not included in a block and are not currently in the mempool. It has which are not included in a block and are not currently in the mempool. It has
no effect on transactions which are already conflicted or abandoned. no effect on transactions which are already conflicted or abandoned.
""" """
from test_framework.test_framework import BitcoinTestFramework from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import * from test_framework.util import *
import urllib.parse
class AbandonConflictTest(BitcoinTestFramework): class AbandonConflictTest(BitcoinTestFramework):
def __init__(self): def __init__(self):
@ -37,8 +35,8 @@ class AbandonConflictTest(BitcoinTestFramework):
assert(balance - newbalance < Decimal("0.001")) #no more than fees lost assert(balance - newbalance < Decimal("0.001")) #no more than fees lost
balance = newbalance balance = newbalance
url = urllib.parse.urlparse(self.nodes[1].url) # Disconnect nodes so node0's transactions don't get into node1's mempool
self.nodes[0].disconnectnode(url.hostname+":"+str(p2p_port(1))) disconnect_nodes(self.nodes[0], 1)
# Identify the 10btc outputs # Identify the 10btc outputs
nA = next(i for i, vout in enumerate(self.nodes[0].getrawtransaction(txA, 1)["vout"]) if vout["value"] == Decimal("10")) nA = next(i for i, vout in enumerate(self.nodes[0].getrawtransaction(txA, 1)["vout"]) if vout["value"] == Decimal("10"))
@ -78,8 +76,9 @@ class AbandonConflictTest(BitcoinTestFramework):
stop_node(self.nodes[0],0) stop_node(self.nodes[0],0)
self.nodes[0]=start_node(0, self.options.tmpdir, ["-minrelaytxfee=0.0001"]) self.nodes[0]=start_node(0, self.options.tmpdir, ["-minrelaytxfee=0.0001"])
# Verify txs no longer in mempool # Verify txs no longer in either node's mempool
assert_equal(len(self.nodes[0].getrawmempool()), 0) assert_equal(len(self.nodes[0].getrawmempool()), 0)
assert_equal(len(self.nodes[1].getrawmempool()), 0)
# Not in mempool txs from self should only reduce balance # Not in mempool txs from self should only reduce balance
# inputs are still spent, but change not received # inputs are still spent, but change not received