adjusted common tests for multiple assets

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
Lorenz Herzberger 2022-04-13 13:25:50 +02:00
parent 664fe6c772
commit f3279ca6fd
No known key found for this signature in database
GPG Key ID: FA5EE906EB55316A
3 changed files with 40 additions and 40 deletions

View File

@ -24,11 +24,11 @@ CC_CONDITION_URI = ('ni:///sha-256;'
'eZI5q6j8T_fqv7xMROaei9_tmTMk4S7WR5Kr4onPHV8' 'eZI5q6j8T_fqv7xMROaei9_tmTMk4S7WR5Kr4onPHV8'
'?fpt=ed25519-sha-256&cost=131072') '?fpt=ed25519-sha-256&cost=131072')
ASSET_DEFINITION = { ASSET_DEFINITION = [{
'data': { 'data': {
'definition': 'Asset definition' 'definition': 'Asset definition'
} }
} }]
DATA = { DATA = {
'msg': 'Hello Planetmint!' 'msg': 'Hello Planetmint!'
@ -141,7 +141,7 @@ def data():
@pytest.fixture @pytest.fixture
def utx(user_input, user_output): def utx(user_input, user_output):
from planetmint.transactions.common.transaction import Transaction from planetmint.transactions.common.transaction import Transaction
return Transaction(Transaction.CREATE, {'data': None}, [user_input], return Transaction(Transaction.CREATE, [{'data': None}], [user_input],
[user_output]) [user_output])
@ -158,7 +158,7 @@ def transfer_utx(user_output, user2_output, utx):
input = Input(utx.outputs[0].fulfillment, input = Input(utx.outputs[0].fulfillment,
user_output['public_keys'], user_output['public_keys'],
TransactionLink(utx.id, 0)) TransactionLink(utx.id, 0))
return Transaction('TRANSFER', {'id': utx.id}, [input], [user2_output]) return Transaction('TRANSFER', [{'id': utx.id}], [input], [user2_output])
@pytest.fixture @pytest.fixture
@ -169,7 +169,7 @@ def transfer_tx(transfer_utx, user_priv):
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def dummy_transaction(): def dummy_transaction():
return { return {
'asset': {'data': None}, 'assets': [{'data': None}],
'id': 64 * 'a', 'id': 64 * 'a',
'inputs': [{ 'inputs': [{
'fulfillment': 'dummy', 'fulfillment': 'dummy',
@ -196,11 +196,11 @@ def dummy_transaction():
@pytest.fixture @pytest.fixture
def unfulfilled_transaction(): def unfulfilled_transaction():
return { return {
'asset': { 'assets': [{
'data': { 'data': {
'msg': 'Hello Planetmint!', 'msg': 'Hello Planetmint!',
} }
}, }],
'id': None, 'id': None,
'inputs': [{ 'inputs': [{
# XXX This could be None, see #1925 # XXX This could be None, see #1925
@ -231,11 +231,11 @@ def unfulfilled_transaction():
@pytest.fixture @pytest.fixture
def fulfilled_transaction(): def fulfilled_transaction():
return { return {
'asset': { 'assets': [{
'data': { 'data': {
'msg': 'Hello Planetmint!', 'msg': 'Hello Planetmint!',
} }
}, }],
'id': None, 'id': None,
'inputs': [{ 'inputs': [{
'fulfillment': ('pGSAIP_2P1Juh-94sD3uno1lxMPd9EkIalRo7QB014pT6dD9g' 'fulfillment': ('pGSAIP_2P1Juh-94sD3uno1lxMPd9EkIalRo7QB014pT6dD9g'
@ -277,11 +277,11 @@ def fulfilled_transaction():
)) ))
def tri_state_transaction(request): def tri_state_transaction(request):
tx = { tx = {
'asset': { 'assets': [{
'data': { 'data': {
'msg': 'Hello Planetmint!', 'msg': 'Hello Planetmint!',
} }
}, }],
'id': None, 'id': None,
'inputs': [{ 'inputs': [{
'fulfillment': None, 'fulfillment': None,

View File

@ -26,7 +26,7 @@ def test_memoize_to_dict(b):
tx = Create.generate([alice.public_key], tx = Create.generate([alice.public_key],
[([alice.public_key], 1)], [([alice.public_key], 1)],
assets=asset,)\ assets=[asset],)\
.sign([alice.private_key]) .sign([alice.private_key])
tx.to_dict() tx.to_dict()
@ -52,7 +52,7 @@ def test_memoize_from_dict(b):
tx = Create.generate([alice.public_key], tx = Create.generate([alice.public_key],
[([alice.public_key], 1)], [([alice.public_key], 1)],
assets=asset,)\ assets=[asset],)\
.sign([alice.private_key]) .sign([alice.private_key])
tx_dict = deepcopy(tx.to_dict()) tx_dict = deepcopy(tx.to_dict())
@ -79,7 +79,7 @@ def test_memoize_input_valid(b):
tx = Create.generate([alice.public_key], tx = Create.generate([alice.public_key],
[([alice.public_key], 1)], [([alice.public_key], 1)],
assets=asset,)\ assets=[asset],)\
.sign([alice.private_key]) .sign([alice.private_key])
tx.inputs_valid() tx.inputs_valid()

View File

@ -309,11 +309,11 @@ def test_invalid_transaction_initialization(asset_definition):
def test_create_default_asset_on_tx_initialization(asset_definition): def test_create_default_asset_on_tx_initialization(asset_definition):
from planetmint.transactions.common.transaction import Transaction from planetmint.transactions.common.transaction import Transaction
expected = {'data': None} expected = [{'data': None}]
tx = Transaction(Transaction.CREATE, assets=expected) tx = Transaction(Transaction.CREATE, assets=expected)
asset = tx.asset assets = tx.assets
assert asset == expected assert assets == expected
def test_transaction_serialization(user_input, user_output, data): def test_transaction_serialization(user_input, user_output, data):
@ -328,12 +328,12 @@ def test_transaction_serialization(user_input, user_output, data):
'outputs': [user_output.to_dict()], 'outputs': [user_output.to_dict()],
'operation': Transaction.CREATE, 'operation': Transaction.CREATE,
'metadata': None, 'metadata': None,
'asset': { 'assets': [{
'data': data, 'data': data,
} }]
} }
tx = Transaction(Transaction.CREATE, {'data': data}, [user_input], tx = Transaction(Transaction.CREATE, [{'data': data}], [user_input],
[user_output]) [user_output])
tx_dict = tx.to_dict() tx_dict = tx.to_dict()
@ -639,7 +639,7 @@ def test_multiple_input_validation_of_transfer_tx(user_input, user_output,
[user3_pub]), [user3_pub]),
Output(Ed25519Sha256(public_key=b58decode(user3_pub)), Output(Ed25519Sha256(public_key=b58decode(user3_pub)),
[user3_pub])] [user3_pub])]
transfer_tx = Transaction('TRANSFER', {'id': tx.id}, inputs, outputs) transfer_tx = Transaction('TRANSFER', [{'id': tx.id}], inputs, outputs)
transfer_tx = transfer_tx.sign([user_priv]) transfer_tx = transfer_tx.sign([user_priv])
assert transfer_tx.inputs_valid(tx.outputs) is True assert transfer_tx.inputs_valid(tx.outputs) is True
@ -676,9 +676,9 @@ def test_create_create_transaction_single_io(user_output, user_pub, data):
expected = { expected = {
'outputs': [user_output.to_dict()], 'outputs': [user_output.to_dict()],
'metadata': data, 'metadata': data,
'asset': { 'assets': [{
'data': data, 'data': data,
}, }],
'inputs': [ 'inputs': [
{ {
'owners_before': [ 'owners_before': [
@ -693,7 +693,7 @@ def test_create_create_transaction_single_io(user_output, user_pub, data):
} }
tx = Create.generate([user_pub], [([user_pub], 1)], metadata=data, tx = Create.generate([user_pub], [([user_pub], 1)], metadata=data,
assets=data) assets=[data])
tx_dict = tx.to_dict() tx_dict = tx.to_dict()
tx_dict['inputs'][0]['fulfillment'] = None tx_dict['inputs'][0]['fulfillment'] = None
tx_dict.pop('id') tx_dict.pop('id')
@ -732,7 +732,7 @@ def test_create_create_transaction_multiple_io(user_output, user2_output, user_p
[([user_pub], 1), ([user2_pub], 1)], [([user_pub], 1), ([user2_pub], 1)],
metadata={'message': 'hello'}).to_dict() metadata={'message': 'hello'}).to_dict()
tx.pop('id') tx.pop('id')
tx.pop('asset') tx.pop('assets')
assert tx == expected assert tx == expected
@ -759,9 +759,9 @@ def test_create_create_transaction_threshold(user_pub, user2_pub, user3_pub,
expected = { expected = {
'outputs': [user_user2_threshold_output.to_dict()], 'outputs': [user_user2_threshold_output.to_dict()],
'metadata': data, 'metadata': data,
'asset': { 'assets': [{
'data': data, 'data': data,
}, }],
'inputs': [ 'inputs': [
{ {
'owners_before': [ 'owners_before': [
@ -775,7 +775,7 @@ def test_create_create_transaction_threshold(user_pub, user2_pub, user3_pub,
'version': Transaction.VERSION 'version': Transaction.VERSION
} }
tx = Create.generate([user_pub], [([user_pub, user2_pub], 1)], tx = Create.generate([user_pub], [([user_pub, user2_pub], 1)],
metadata=data, assets=data) metadata=data, assets=[data])
tx_dict = tx.to_dict() tx_dict = tx.to_dict()
tx_dict.pop('id') tx_dict.pop('id')
tx_dict['inputs'][0]['fulfillment'] = None tx_dict['inputs'][0]['fulfillment'] = None
@ -836,9 +836,9 @@ def test_create_transfer_transaction_single_io(tx, user_pub, user2_pub,
'id': None, 'id': None,
'outputs': [user2_output.to_dict()], 'outputs': [user2_output.to_dict()],
'metadata': None, 'metadata': None,
'asset': { 'assets': [{
'id': tx.id, 'id': tx.id,
}, }],
'inputs': [ 'inputs': [
{ {
'owners_before': [ 'owners_before': [
@ -931,7 +931,7 @@ def test_create_transfer_transaction_multiple_io(user_pub, user_priv,
transfer_tx = transfer_tx.to_dict() transfer_tx = transfer_tx.to_dict()
transfer_tx['inputs'][0]['fulfillment'] = None transfer_tx['inputs'][0]['fulfillment'] = None
transfer_tx['inputs'][1]['fulfillment'] = None transfer_tx['inputs'][1]['fulfillment'] = None
transfer_tx.pop('asset') transfer_tx.pop('assets')
transfer_tx.pop('id') transfer_tx.pop('id')
assert expected == transfer_tx assert expected == transfer_tx
@ -939,23 +939,23 @@ def test_create_transfer_transaction_multiple_io(user_pub, user_priv,
def test_create_transfer_with_invalid_parameters(tx, user_pub): def test_create_transfer_with_invalid_parameters(tx, user_pub):
with raises(TypeError): with raises(TypeError):
Transfer.generate({}, [], tx.id) Transfer.generate({}, [], [tx.id])
with raises(ValueError): with raises(ValueError):
Transfer.generate([], [], tx.id) Transfer.generate([], [], [tx.id])
with raises(TypeError): with raises(TypeError):
Transfer.generate(['fulfillment'], {}, tx.id) Transfer.generate(['fulfillment'], {}, [tx.id])
with raises(ValueError): with raises(ValueError):
Transfer.generate(['fulfillment'], [], tx.id) Transfer.generate(['fulfillment'], [], [tx.id])
with raises(ValueError): with raises(ValueError):
Transfer.generate(['fulfillment'], [user_pub], tx.id) Transfer.generate(['fulfillment'], [user_pub], [tx.id])
with raises(ValueError): with raises(ValueError):
Transfer.generate(['fulfillment'], [([user_pub],)], tx.id) Transfer.generate(['fulfillment'], [([user_pub],)], [tx.id])
with raises(TypeError): with raises(TypeError):
Transfer.generate(['fulfillment'], [([user_pub], 1)], Transfer.generate(['fulfillment'], [([user_pub], 1)],
tx.id, metadata='not a dict or none') [tx.id], metadata='not a dict or none')
with raises(TypeError): with raises(TypeError):
Transfer.generate(['fulfillment'], [([user_pub], 1)], Transfer.generate(['fulfillment'], [([user_pub], 1)],
['not a string']) 'not a list')
def test_cant_add_empty_output(): def test_cant_add_empty_output():
@ -1019,7 +1019,7 @@ def test_unspent_outputs_property(merlin, alice, bob, carol):
[([alice.public_key], 1), [([alice.public_key], 1),
([bob.public_key], 2), ([bob.public_key], 2),
([carol.public_key], 3)], ([carol.public_key], 3)],
assets={'hash': '06e47bcf9084f7ecfd2a2a2ad275444a'}, assets=[{'hash': '06e47bcf9084f7ecfd2a2a2ad275444a'}],
).sign([merlin.private_key]) ).sign([merlin.private_key])
unspent_outputs = list(tx.unspent_outputs) unspent_outputs = list(tx.unspent_outputs)
assert len(unspent_outputs) == 3 assert len(unspent_outputs) == 3