mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Fixed tests after renaming payload to metadata
This commit is contained in:
parent
fd585188e2
commit
1377ce2389
@ -1,4 +1,4 @@
|
|||||||
from bigchaindb.exceptions import AssetIdMismatch
|
from bigchaindb.exceptions import AssetIdMismatch, TransactionDoesNotExist
|
||||||
|
|
||||||
|
|
||||||
def get_asset_id(txids, bigchain):
|
def get_asset_id(txids, bigchain):
|
||||||
@ -23,6 +23,8 @@ def get_asset_id(txids, bigchain):
|
|||||||
asset_ids = []
|
asset_ids = []
|
||||||
for txid in set(txids):
|
for txid in set(txids):
|
||||||
tx = bigchain.get_transaction(txid)
|
tx = bigchain.get_transaction(txid)
|
||||||
|
if tx is None:
|
||||||
|
raise TransactionDoesNotExist('Transaction with txid `{}` does not exist in the bigchain'.format(txid))
|
||||||
if tx['transaction']['operation'] == 'CREATE':
|
if tx['transaction']['operation'] == 'CREATE':
|
||||||
asset_ids.append(tx['transaction']['asset']['id'])
|
asset_ids.append(tx['transaction']['asset']['id'])
|
||||||
else:
|
else:
|
||||||
|
@ -83,9 +83,16 @@ class TestBigchainApi(object):
|
|||||||
|
|
||||||
vote = b.vote(block.id, b.get_last_voted_block().id, True)
|
vote = b.vote(block.id, b.get_last_voted_block().id, True)
|
||||||
b.write_vote(vote)
|
b.write_vote(vote)
|
||||||
|
|
||||||
assert b.has_previous_vote(block.id, block.voters) is True
|
assert b.has_previous_vote(block.id, block.voters) is True
|
||||||
|
|
||||||
|
matches = b.get_tx_by_metadata_id(metadata_id)
|
||||||
|
assert len(matches) == 1
|
||||||
|
assert matches[0]['id'] == tx['id']
|
||||||
|
|
||||||
|
def test_get_transactions_for_metadata_mismatch(self):
|
||||||
|
matches = b.get_tx_by_metadata_id('missing')
|
||||||
|
assert not matches
|
||||||
|
|
||||||
def test_get_spent_with_double_spend(self, b, monkeypatch):
|
def test_get_spent_with_double_spend(self, b, monkeypatch):
|
||||||
from bigchaindb_common.exceptions import DoubleSpend
|
from bigchaindb_common.exceptions import DoubleSpend
|
||||||
from bigchaindb.models import Transaction
|
from bigchaindb.models import Transaction
|
||||||
@ -171,7 +178,7 @@ class TestBigchainApi(object):
|
|||||||
vote = b.vote(block2.id, b.get_last_voted_block().id, True)
|
vote = b.vote(block2.id, b.get_last_voted_block().id, True)
|
||||||
b.write_vote(vote)
|
b.write_vote(vote)
|
||||||
|
|
||||||
assert b.get_transaction(tx1.id) == None
|
assert b.get_transaction(tx1.id) is None
|
||||||
assert b.get_transaction(tx2.id) == tx2
|
assert b.get_transaction(tx2.id) == tx2
|
||||||
|
|
||||||
def test_get_transactions_for_payload(self, b, user_vk):
|
def test_get_transactions_for_payload(self, b, user_vk):
|
||||||
@ -514,6 +521,24 @@ class TestBigchainApi(object):
|
|||||||
assert response['assignee'] in b.nodes_except_me
|
assert response['assignee'] in b.nodes_except_me
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: Make this test work
|
||||||
|
@pytest.mark.usefixtures('inputs')
|
||||||
|
def test_non_create_input_not_found(self, b, user_vk):
|
||||||
|
with pytest.raises(exceptions.TransactionDoesNotExist) as excinfo:
|
||||||
|
b.create_transaction(user_vk, user_vk, {'txid': 'c', 'cid': 0}, 'TRANSFER')
|
||||||
|
|
||||||
|
assert excinfo.value.args[0] == 'Transaction with txid `c` does not exist in the bigchain'
|
||||||
|
|
||||||
|
# Create transaction does not let you create a malformed transaction.
|
||||||
|
# Create a custom malformed transaction and check if validate catches the error
|
||||||
|
tx_input = b.get_owned_ids(user_vk).pop()
|
||||||
|
tx = b.create_transaction(user_vk, user_vk, tx_input, 'TRANSFER')
|
||||||
|
tx['transaction']['fulfillments'][0]['input'] = {'txid': 'c', 'cid': 0}
|
||||||
|
|
||||||
|
with pytest.raises(exceptions.TransactionDoesNotExist) as excinfo:
|
||||||
|
b.validate_transaction(tx)
|
||||||
|
|
||||||
|
|
||||||
class TestTransactionValidation(object):
|
class TestTransactionValidation(object):
|
||||||
def test_create_operation_with_inputs(self, b, user_vk, create_tx):
|
def test_create_operation_with_inputs(self, b, user_vk, create_tx):
|
||||||
from bigchaindb_common.transaction import TransactionLink
|
from bigchaindb_common.transaction import TransactionLink
|
||||||
@ -695,6 +720,8 @@ class TestMultipleInputs(object):
|
|||||||
assert len(tx.fulfillments) == 1
|
assert len(tx.fulfillments) == 1
|
||||||
assert len(tx.conditions) == 1
|
assert len(tx.conditions) == 1
|
||||||
|
|
||||||
|
@pytest.mark.skipif(reason=('Multiple inputs are only allowed for the same asset. Remove this after ',
|
||||||
|
'implementing multiple assets'))
|
||||||
def test_transfer_single_owners_multiple_inputs(self, b, user_sk, user_vk):
|
def test_transfer_single_owners_multiple_inputs(self, b, user_sk, user_vk):
|
||||||
from bigchaindb_common import crypto
|
from bigchaindb_common import crypto
|
||||||
from bigchaindb.models import Transaction
|
from bigchaindb.models import Transaction
|
||||||
@ -722,6 +749,9 @@ class TestMultipleInputs(object):
|
|||||||
assert len(tx.fulfillments) == 3
|
assert len(tx.fulfillments) == 3
|
||||||
assert len(tx.conditions) == 3
|
assert len(tx.conditions) == 3
|
||||||
|
|
||||||
|
@pytest.mark.skipif(reason=('Multiple inputs are only allowed for the '
|
||||||
|
'same asset. Remove this after implementing ',
|
||||||
|
'multiple assets'))
|
||||||
def test_transfer_single_owners_single_input_from_multiple_outputs(self, b,
|
def test_transfer_single_owners_single_input_from_multiple_outputs(self, b,
|
||||||
user_sk,
|
user_sk,
|
||||||
user_vk):
|
user_vk):
|
||||||
@ -787,6 +817,9 @@ class TestMultipleInputs(object):
|
|||||||
assert len(tx.fulfillments) == 1
|
assert len(tx.fulfillments) == 1
|
||||||
assert len(tx.conditions) == 1
|
assert len(tx.conditions) == 1
|
||||||
|
|
||||||
|
@pytest.mark.skipif(reason=('Multiple inputs are only allowed for the '
|
||||||
|
'same asset. Remove this after implementing ',
|
||||||
|
'multiple assets'))
|
||||||
def test_single_owner_before_multiple_owners_after_multiple_inputs(self, b,
|
def test_single_owner_before_multiple_owners_after_multiple_inputs(self, b,
|
||||||
user_sk,
|
user_sk,
|
||||||
user_vk):
|
user_vk):
|
||||||
@ -847,6 +880,9 @@ class TestMultipleInputs(object):
|
|||||||
assert len(transfer_tx.fulfillments) == 1
|
assert len(transfer_tx.fulfillments) == 1
|
||||||
assert len(transfer_tx.conditions) == 1
|
assert len(transfer_tx.conditions) == 1
|
||||||
|
|
||||||
|
@pytest.mark.skipif(reason=('Multiple inputs are only allowed for the '
|
||||||
|
'same asset. Remove this after implementing ',
|
||||||
|
'multiple assets'))
|
||||||
def test_multiple_owners_before_single_owner_after_multiple_inputs(self, b,
|
def test_multiple_owners_before_single_owner_after_multiple_inputs(self, b,
|
||||||
user_sk,
|
user_sk,
|
||||||
user_vk):
|
user_vk):
|
||||||
@ -900,6 +936,9 @@ class TestMultipleInputs(object):
|
|||||||
assert len(tx.fulfillments) == 1
|
assert len(tx.fulfillments) == 1
|
||||||
assert len(tx.conditions) == 1
|
assert len(tx.conditions) == 1
|
||||||
|
|
||||||
|
@pytest.mark.skipif(reason=('Multiple inputs are only allowed for the '
|
||||||
|
'same asset. Remove this after implementing ',
|
||||||
|
'multiple assets'))
|
||||||
def test_multiple_owners_before_multiple_owners_after_multiple_inputs(self,
|
def test_multiple_owners_before_multiple_owners_after_multiple_inputs(self,
|
||||||
b,
|
b,
|
||||||
user_sk,
|
user_sk,
|
||||||
@ -999,6 +1038,9 @@ class TestMultipleInputs(object):
|
|||||||
assert owned_inputs_user1 == [TransactionLink(tx.id, 0)]
|
assert owned_inputs_user1 == [TransactionLink(tx.id, 0)]
|
||||||
assert owned_inputs_user2 == []
|
assert owned_inputs_user2 == []
|
||||||
|
|
||||||
|
@pytest.mark.skipif(reason=('Multiple inputs are only allowed for the '
|
||||||
|
'same asset. Remove this after implementing ',
|
||||||
|
'multiple assets'))
|
||||||
def test_get_owned_ids_single_tx_multiple_outputs(self, b, user_sk,
|
def test_get_owned_ids_single_tx_multiple_outputs(self, b, user_sk,
|
||||||
user_vk):
|
user_vk):
|
||||||
import random
|
import random
|
||||||
@ -1138,6 +1180,9 @@ class TestMultipleInputs(object):
|
|||||||
# Now there should be no spents (the block is invalid)
|
# Now there should be no spents (the block is invalid)
|
||||||
assert spent_inputs_user1 is None
|
assert spent_inputs_user1 is None
|
||||||
|
|
||||||
|
@pytest.mark.skipif(reason=('Multiple inputs are only allowed for the '
|
||||||
|
'same asset. Remove this after implementing ',
|
||||||
|
'multiple assets'))
|
||||||
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):
|
||||||
import random
|
import random
|
||||||
from bigchaindb_common import crypto
|
from bigchaindb_common import crypto
|
||||||
|
Loading…
x
Reference in New Issue
Block a user