mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Add serialization validation for txids
This commit is contained in:
parent
f65baae833
commit
52f541279c
@ -181,14 +181,12 @@ def test_transaction_serialization(default_single_ffill, default_single_cond):
|
||||
def test_transaction_deserialization(default_single_ffill, default_single_cond):
|
||||
from bigchaindb_common.transaction import Transaction
|
||||
|
||||
tx_id = 'l0l'
|
||||
timestamp = '66666666666'
|
||||
|
||||
expected = Transaction(Transaction.CREATE, [default_single_ffill], [default_single_cond], None, timestamp,
|
||||
Transaction.VERSION)
|
||||
|
||||
tx = {
|
||||
'id': tx_id,
|
||||
'version': Transaction.VERSION,
|
||||
'transaction': {
|
||||
# NOTE: This test assumes that Fulfillments and Conditions can successfully be serialized
|
||||
@ -199,11 +197,28 @@ def test_transaction_deserialization(default_single_ffill, default_single_cond):
|
||||
'data': None,
|
||||
}
|
||||
}
|
||||
tx['id'] = Transaction._to_hash(Transaction._to_str(Transaction._remove_signatures(tx)))
|
||||
tx = Transaction.from_dict(tx)
|
||||
|
||||
assert tx.to_dict() == expected.to_dict()
|
||||
|
||||
|
||||
def test_tx_serialization_with_incorrect_hash(utx):
|
||||
from bigchaindb_common.transaction import Transaction
|
||||
from bigchaindb_common.exceptions import InvalidHash
|
||||
|
||||
utx_dict = utx.to_dict()
|
||||
utx_dict['id'] = 'abc'
|
||||
with raises(InvalidHash):
|
||||
Transaction.from_dict(utx_dict)
|
||||
utx_dict.pop('id')
|
||||
with raises(InvalidHash):
|
||||
Transaction.from_dict(utx_dict)
|
||||
utx_dict['id'] = []
|
||||
with raises(InvalidHash):
|
||||
Transaction.from_dict(utx_dict)
|
||||
|
||||
|
||||
def test_invalid_tx_initialization():
|
||||
from bigchaindb_common.transaction import Transaction
|
||||
|
||||
@ -310,7 +325,6 @@ def test_validate_tx_simple_signature(default_single_ffill, default_single_cond,
|
||||
from bigchaindb_common.crypto import SigningKey
|
||||
from bigchaindb_common.transaction import Transaction
|
||||
|
||||
|
||||
tx = Transaction(Transaction.CREATE, [default_single_ffill], [default_single_cond])
|
||||
expected = deepcopy(default_single_ffill)
|
||||
expected.fulfillment.sign(str(tx), SigningKey(user_priv))
|
||||
|
Loading…
x
Reference in New Issue
Block a user