add replicating test

This commit is contained in:
ryan 2016-12-08 11:51:23 +01:00 committed by Scott Sadler
parent 6783478126
commit 2de652ad5c

View File

@ -44,3 +44,35 @@ def test_double_create(b, user_pk):
last_voted_block = b.get_last_voted_block()
assert len(last_voted_block.transactions) == 1
assert count_blocks(b.connection) == 2
@pytest.mark.usefixtures('processes', 'inputs')
def test_get_owned_ids_works_after_double_spend(b, user_pk, user_sk):
"""See issue 633."""
from bigchaindb.models import Transaction
input_valid = b.get_owned_ids(user_pk).pop()
input_valid = b.get_transaction(input_valid.txid)
tx_valid = Transaction.transfer(input_valid.to_inputs(),
[([user_pk], 1)],
input_valid.asset).sign([user_sk])
# write the valid tx and wait for voting/block to catch up
b.write_transaction(tx_valid)
time.sleep(2)
# doesn't throw an exception
b.get_owned_ids(user_pk)
# create another transaction with the same input
tx_double_spend = Transaction.transfer(input_valid.to_inputs(),
[([user_pk], 1)],
input_valid.asset) \
.sign([user_sk])
# write the double spend tx
b.write_transaction(tx_double_spend)
time.sleep(2)
# still doesn't throw an exception
b.get_owned_ids(user_pk)
assert b.is_valid_transaction(tx_double_spend) is False