mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Add tests for:
- Conditions; and - Fulfillments Mostly on the (de)serialization part.
This commit is contained in:
parent
7d2707b973
commit
50562fed43
@ -1,43 +1,89 @@
|
|||||||
# TODO: Make sense of this test
|
from pytest import raises
|
||||||
def test_init_transaction(b, user_vk):
|
|
||||||
|
|
||||||
|
def test_fulfillment_serialization(ffill_uri, user_vk):
|
||||||
from bigchaindb.transaction import (
|
from bigchaindb.transaction import (
|
||||||
Fulfillment,
|
Fulfillment,
|
||||||
Condition,
|
|
||||||
Transaction,
|
|
||||||
TransactionType,
|
|
||||||
)
|
)
|
||||||
from bigchaindb.util import validate_fulfillments
|
|
||||||
|
|
||||||
ffill = Fulfillment([user_vk])
|
ffill = Fulfillment(ffill_uri, [user_vk])
|
||||||
cond = Condition([user_vk])
|
ffill_dict = ffill.to_dict()
|
||||||
tx = Transaction([ffill], [cond], TransactionType.CREATE)
|
assert ffill_dict['owners_before'] == [user_vk]
|
||||||
tx = tx.to_dict()
|
assert ffill_dict['input'] == None
|
||||||
|
assert ffill_dict['fulfillment'] == ffill_uri
|
||||||
assert tx['transaction']['fulfillments'][0]['owners_before'][0] == b.me
|
assert ffill_dict['fid'] == 0
|
||||||
# NOTE: Why are we accessing `['']`?
|
|
||||||
assert tx['transaction']['conditions'][0][''][0] == user_vk
|
|
||||||
assert validate_fulfillments(tx)
|
|
||||||
|
|
||||||
|
|
||||||
def test_create_tx_with_empty_inputs():
|
def test_fulfillment_deserialization(ffill_uri, user_vk):
|
||||||
from bigchaindb.transaction import (
|
from bigchaindb.transaction import (
|
||||||
Fulfillment,
|
Fulfillment,
|
||||||
Condition,
|
|
||||||
Transaction,
|
|
||||||
TransactionType,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ffill = Fulfillment(None)
|
ffill_dict = {
|
||||||
cond = Condition(None)
|
'owners_before': [user_vk],
|
||||||
tx = Transaction([ffill], [cond], TransactionType.CREATE).to_dict()
|
'fulfillment': ffill_uri,
|
||||||
assert 'id' in tx
|
'fid': 0,
|
||||||
assert 'transaction' in tx
|
'input': None,
|
||||||
assert 'version' in tx
|
}
|
||||||
assert 'fulfillments' in tx['transaction']
|
|
||||||
assert 'conditions' in tx['transaction']
|
assert Fulfillment.from_dict(ffill_dict).to_dict() == ffill_dict
|
||||||
assert 'operation' in tx['transaction']
|
|
||||||
assert 'timestamp' in tx['transaction']
|
|
||||||
assert 'data' in tx['transaction']
|
def test_invalid_fulfillment_initialization(ffill_uri, user_vk):
|
||||||
assert len(tx['transaction']['fulfillments']) == 1
|
from bigchaindb.transaction import (
|
||||||
assert tx['transaction']['fulfillments'][0] == {
|
Fulfillment,
|
||||||
'owners_before': [], 'input': None, 'fulfillment': None, 'fid': 0}
|
)
|
||||||
|
with raises(TypeError):
|
||||||
|
Fulfillment(ffill_uri, user_vk)
|
||||||
|
|
||||||
|
|
||||||
|
def test_condition_serialization(cond_uri, user_vk):
|
||||||
|
from bigchaindb.transaction import (
|
||||||
|
Condition,
|
||||||
|
)
|
||||||
|
|
||||||
|
cond = Condition(cond_uri, [user_vk])
|
||||||
|
cond_dict = cond.to_dict()
|
||||||
|
assert cond_dict['owners_after'] == [user_vk]
|
||||||
|
assert cond_dict['condition']['uri'] == cond_uri
|
||||||
|
assert cond_dict['cid'] == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_condition_deserialization(cond_uri, user_vk):
|
||||||
|
from bigchaindb.transaction import (
|
||||||
|
Condition,
|
||||||
|
)
|
||||||
|
from cryptoconditions import (
|
||||||
|
Condition as CCCondition,
|
||||||
|
)
|
||||||
|
|
||||||
|
cond_dict = {
|
||||||
|
'condition': {
|
||||||
|
'uri': cond_uri,
|
||||||
|
'details': CCCondition.from_uri(cond_uri).to_dict()
|
||||||
|
},
|
||||||
|
'owners_after': [user_vk],
|
||||||
|
'cid': 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
assert Condition.from_dict(cond_dict).to_dict() == cond_dict
|
||||||
|
|
||||||
|
|
||||||
|
def test_invalid_condition_initialization(cond_uri, user_vk):
|
||||||
|
from bigchaindb.transaction import (
|
||||||
|
Condition,
|
||||||
|
)
|
||||||
|
with raises(TypeError):
|
||||||
|
Condition(cond_uri, user_vk)
|
||||||
|
|
||||||
|
|
||||||
|
def test_gen_default_condition(user_vk):
|
||||||
|
from bigchaindb.transaction import (
|
||||||
|
Condition,
|
||||||
|
)
|
||||||
|
from cryptoconditions import Ed25519Fulfillment
|
||||||
|
cond = Condition.gen_default_condition(user_vk)
|
||||||
|
assert cond.owners_after == [user_vk]
|
||||||
|
assert cond.cid == 0
|
||||||
|
# TODO: Would be nice if Cryptoconditions would implement a `__eq__` method
|
||||||
|
assert cond.condition.to_dict() == Ed25519Fulfillment(public_key=user_vk).condition.to_dict()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user