mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Added tests for get_spent with multi outputs txs
This commit is contained in:
parent
1c1fd47c80
commit
cbb9a55de8
@ -1072,13 +1072,105 @@ class TestMultipleInputs(object):
|
|||||||
assert owned_inputs_user1 == expected_owned_inputs_user1
|
assert owned_inputs_user1 == expected_owned_inputs_user1
|
||||||
|
|
||||||
def test_get_spent_single_tx_single_output(self, b, user_sk, user_vk):
|
def test_get_spent_single_tx_single_output(self, b, user_sk, user_vk):
|
||||||
pass
|
# create a new users
|
||||||
|
user2_sk, user2_vk = crypto.generate_key_pair()
|
||||||
|
|
||||||
|
# create input to spend
|
||||||
|
tx = b.create_transaction(b.me, user_vk, None, 'CREATE')
|
||||||
|
tx_signed = b.sign_transaction(tx, b.me_private)
|
||||||
|
block = b.create_block([tx_signed])
|
||||||
|
b.write_block(block, durability='hard')
|
||||||
|
|
||||||
|
# get input
|
||||||
|
owned_inputs_user1 = b.get_owned_ids(user_vk)
|
||||||
|
|
||||||
|
# check spents
|
||||||
|
spent_inputs_user1 = b.get_spent(owned_inputs_user1[0])
|
||||||
|
assert spent_inputs_user1 is None
|
||||||
|
|
||||||
|
# create a transaction and block
|
||||||
|
tx = b.create_transaction(user_vk, user2_vk, owned_inputs_user1, 'TRANSFER')
|
||||||
|
tx_signed = b.sign_transaction(tx, user_sk)
|
||||||
|
block = b.create_block([tx_signed])
|
||||||
|
b.write_block(block, durability='hard')
|
||||||
|
|
||||||
|
spent_inputs_user1 = b.get_spent(owned_inputs_user1[0])
|
||||||
|
assert spent_inputs_user1 == tx_signed
|
||||||
|
|
||||||
def test_get_spent_single_tx_multiple_outputs(self, b, user_sk, user_vk):
|
def test_get_spent_single_tx_multiple_outputs(self, b, user_sk, user_vk):
|
||||||
pass
|
# create a new users
|
||||||
|
user2_sk, user2_vk = crypto.generate_key_pair()
|
||||||
|
|
||||||
|
# create inputs to spend
|
||||||
|
transactions = []
|
||||||
|
for i in range(5):
|
||||||
|
tx = b.create_transaction(b.me, user_vk, None, 'CREATE')
|
||||||
|
tx_signed = b.sign_transaction(tx, b.me_private)
|
||||||
|
transactions.append(tx_signed)
|
||||||
|
block = b.create_block(transactions)
|
||||||
|
b.write_block(block, durability='hard')
|
||||||
|
|
||||||
|
# get input
|
||||||
|
owned_inputs_user1 = b.get_owned_ids(user_vk)
|
||||||
|
|
||||||
|
# check spents
|
||||||
|
for inp in owned_inputs_user1:
|
||||||
|
assert b.get_spent(inp) is None
|
||||||
|
|
||||||
|
# select inputs to use
|
||||||
|
inputs = [owned_inputs_user1.pop(), owned_inputs_user1.pop()]
|
||||||
|
|
||||||
|
# create a transaction and block
|
||||||
|
tx = b.create_transaction(user_vk, user2_vk, inputs, 'TRANSFER')
|
||||||
|
tx_signed = b.sign_transaction(tx, user_sk)
|
||||||
|
block = b.create_block([tx_signed])
|
||||||
|
b.write_block(block, durability='hard')
|
||||||
|
|
||||||
|
# check that used inputs are marked as spent
|
||||||
|
for inp in inputs:
|
||||||
|
assert b.get_spent(inp) == tx_signed
|
||||||
|
|
||||||
|
# check that the other remain marked as unspent
|
||||||
|
for inp in owned_inputs_user1:
|
||||||
|
assert b.get_spent(inp) is None
|
||||||
|
|
||||||
def test_get_spent_multiple_owners(self, b, user_sk, user_vk):
|
def test_get_spent_multiple_owners(self, b, user_sk, user_vk):
|
||||||
pass
|
# create a new users
|
||||||
|
user2_sk, user2_vk = crypto.generate_key_pair()
|
||||||
|
user3_sk, user3_vk = crypto.generate_key_pair()
|
||||||
|
|
||||||
|
# create inputs to spend
|
||||||
|
transactions = []
|
||||||
|
for i in range(5):
|
||||||
|
tx = b.create_transaction(b.me, [user_vk, user2_vk], None, 'CREATE')
|
||||||
|
tx_signed = b.sign_transaction(tx, b.me_private)
|
||||||
|
transactions.append(tx_signed)
|
||||||
|
block = b.create_block(transactions)
|
||||||
|
b.write_block(block, durability='hard')
|
||||||
|
|
||||||
|
# get input
|
||||||
|
owned_inputs_user1 = b.get_owned_ids(user_vk)
|
||||||
|
|
||||||
|
# check spents
|
||||||
|
for inp in owned_inputs_user1:
|
||||||
|
assert b.get_spent(inp) is None
|
||||||
|
|
||||||
|
# select inputs to use
|
||||||
|
inputs = [owned_inputs_user1.pop()]
|
||||||
|
|
||||||
|
# create a transaction
|
||||||
|
tx = b.create_transaction([user_vk, user2_vk], user3_vk, inputs, 'TRANSFER')
|
||||||
|
tx_signed = b.sign_transaction(tx, [user_sk, user2_sk])
|
||||||
|
block = b.create_block([tx_signed])
|
||||||
|
b.write_block(block, durability='hard')
|
||||||
|
|
||||||
|
# check that used inputs are marked as spent
|
||||||
|
for inp in inputs:
|
||||||
|
assert b.get_spent(inp) == tx_signed
|
||||||
|
|
||||||
|
# check that the other remain marked as unspent
|
||||||
|
for inp in owned_inputs_user1:
|
||||||
|
assert b.get_spent(inp) is None
|
||||||
|
|
||||||
|
|
||||||
class TestCryptoconditions(object):
|
class TestCryptoconditions(object):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user