added decompose test cases to assets and web

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
Lorenz Herzberger 2023-01-26 10:10:39 +01:00
parent be6afa8785
commit cb32da52c6
No known key found for this signature in database
GPG Key ID: FA5EE906EB55316A
2 changed files with 41 additions and 0 deletions

View File

@ -82,6 +82,19 @@ def test_compose_valid_transactions(b, user_pk, user_sk, alice, signed_create_tx
assert b.validate_transaction(compose_transaction)
def test_decompose_valid_transactions(b, user_pk, user_sk, alice, signed_create_tx, _bdb):
from transactions.types.assets.decompose import Decompose
validated = b.validate_transaction(signed_create_tx)
b.store_bulk_transactions([validated])
inputs = signed_create_tx.to_inputs()
assets = [signed_create_tx.id]
decompose_transaction = Decompose.generate(inputs=inputs, recipients=[([user_pk], 1)], assets=assets)
decompose_transaction.sign([user_sk])
assert b.validate_transaction(decompose_transaction)
def test_create_valid_divisible_asset(b, user_pk, user_sk, _bdb):
tx = Create.generate([user_pk], [([user_pk], 2)])
tx_signed = tx.sign([user_sk])

View File

@ -16,6 +16,7 @@ from transactions.common import crypto
from transactions.common.transaction import Transaction
from transactions.types.assets.create import Create
from transactions.types.assets.compose import Compose
from transactions.types.assets.decompose import Decompose
from transactions.types.assets.transfer import Transfer
from transactions.common.transaction_mode_types import (
BROADCAST_TX_COMMIT,
@ -523,3 +524,30 @@ def test_post_transaction_compose_valid(client, b):
mode_endpoint = TX_ENDPOINT + "?mode=commit"
response = client.post(mode_endpoint, data=json.dumps(signed_tx.to_dict()))
assert "202 ACCEPTED" in response.status
@pytest.mark.abci
def test_post_transaction_decompose_valid(client, b):
mode = ("?mode=commit", BROADCAST_TX_COMMIT)
alice = generate_key_pair()
tx = Create.generate(
[alice.public_key],
[([alice.public_key], 1)],
assets=[{"data": "QmW5GVMW98D3mktSDfWHS8nX2UiCd8gP1uCiujnFX4yK97"}],
).sign([alice.private_key])
mode_endpoint = TX_ENDPOINT + mode[0]
response = client.post(mode_endpoint, data=json.dumps(tx.to_dict()))
assert "202 ACCEPTED" in response.status
tx_obj = tx
tx = tx.to_dict()
inputs_ = tx_obj.to_inputs()
assets_ = [tx["id"]]
decompose_transaction = Decompose.generate(inputs=inputs_, recipients=[([alice.public_key], 1)], assets=assets_)
signed_tx = decompose_transaction.sign([alice.private_key])
validated_decompose = b.validate_transaction(signed_tx)
mode_endpoint = TX_ENDPOINT + "?mode=commit"
response = client.post(mode_endpoint, data=json.dumps(signed_tx.to_dict()))
assert "202 ACCEPTED" in response.status