mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
import base64
|
|
import json
|
|
|
|
try:
|
|
from hashlib import sha3_256
|
|
except ImportError:
|
|
from sha3 import sha3_256
|
|
|
|
import pytest
|
|
|
|
pytestmark = pytest.mark.tendermint
|
|
|
|
|
|
def test_encode_decode_transaction(b):
|
|
from bigchaindb.tendermint.utils import (encode_transaction,
|
|
decode_transaction)
|
|
|
|
asset = {
|
|
'value': 'key'
|
|
}
|
|
|
|
encode_tx = encode_transaction(asset)
|
|
new_encode_tx = base64.b64encode(json.dumps(asset).
|
|
encode('utf8')).decode('utf8')
|
|
|
|
assert encode_tx == new_encode_tx
|
|
|
|
de64 = base64.b64decode(encode_tx)
|
|
assert asset == decode_transaction(de64)
|
|
|
|
|
|
def test_calculate_hash_no_key(b):
|
|
from bigchaindb.tendermint.utils import calculate_hash
|
|
|
|
# pass an empty list
|
|
assert calculate_hash([]) == ''
|
|
|
|
|
|
# TODO test for the case of an empty list of hashes, and possibly other cases.
|
|
def test_merkleroot():
|
|
from bigchaindb.tendermint.utils import merkleroot
|
|
hashes = [sha3_256(i.encode()).digest() for i in 'abc']
|
|
assert merkleroot(hashes) == (
|
|
'78c7c394d3158c218916b7ae0ebdea502e0f4e85c08e3b371e3dfd824d389fa3')
|