def test_condition_deserialization(user_Ed25519, user_pub):
    from bigchaindb_common.transaction import Condition

    expected = Condition(user_Ed25519, [user_pub], 1)
    cond = {
        'condition': {
            'uri': user_Ed25519.condition_uri,
            'details': user_Ed25519.to_dict()
        },
        'owners_after': [user_pub],
        'amount': 1,
    }
    cond = Condition.from_dict(cond)

    assert cond == expected
def test_condition_hashlock_deserialization():
    from bigchaindb_common.transaction import Condition
    from cryptoconditions import PreimageSha256Fulfillment

    secret = b'wow much secret'
    hashlock = PreimageSha256Fulfillment(preimage=secret).condition_uri
    expected = Condition(hashlock, amount=1)

    cond = {
        'condition': {
            'uri': hashlock
        },
        'owners_after': None,
        'amount': 1,
    }
    cond = Condition.from_dict(cond)

    assert cond == expected