fixed election test cases

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
Lorenz Herzberger 2022-04-13 15:47:34 +02:00
parent 2ecace2f63
commit bbc78b152f
No known key found for this signature in database
GPG Key ID: FA5EE906EB55316A
4 changed files with 11 additions and 16 deletions

View File

@ -239,17 +239,12 @@ class Planetmint(object):
def get_transaction(self, transaction_id):
transaction = backend.query.get_transaction(self.connection, transaction_id)
# TODO: adjust assets fetching for multiasset support
# Dirty hack backend.query.get_assets needs to be implemented
# NOTE: Read up on localmongodb setup and how the connection calls are actually loaded => implementation shows NotImplementError
if transaction:
# asset = backend.query.get_asset(self.connection, transaction_id)
assets = backend.query.get_assets(self.connection, [transaction_id])
metadata = backend.query.get_metadata(self.connection, [transaction_id])
if transaction['operation'] == 'CREATE' and assets:
# NOTE: THIS IS A HACK TO SEE IF THE TX HASH IS CORRECT FOR TESTS, NEEDS TO BE REPLACED AFTER backend.query.get_assets_for_tx is finished
# transaction['assets'] = [asset]
# NOTE: assets must not be replaced for transfer transactions
# TODO: check if this holds true for other tx types
if transaction['operation'] != 'TRANSFER' and assets:
transaction['assets'] = list(assets)
if 'metadata' not in transaction:

View File

@ -143,8 +143,8 @@ class Election(Transaction):
uuid = uuid4()
election_data['seed'] = str(uuid)
(inputs, outputs) = Create.validate_create(initiator, voters, election_data, metadata)
election = cls(cls.OPERATION, {'data': election_data}, inputs, outputs, metadata)
(inputs, outputs) = Create.validate_create(initiator, voters, [election_data], metadata)
election = cls(cls.OPERATION, [{'data': election_data}], inputs, outputs, metadata)
cls.validate_schema(election.to_dict())
return election
@ -268,7 +268,7 @@ class Election(Transaction):
if not isinstance(tx, Vote):
continue
election_id = tx.asset['id']
election_id = tx.assets[0]['id']
if election_id not in elections:
elections[election_id] = []
elections[election_id].append(tx)

View File

@ -40,8 +40,8 @@ class Vote(Transfer):
@classmethod
def generate(cls, inputs, recipients, election_id, metadata=None):
(inputs, outputs) = cls.validate_transfer(inputs, recipients, election_id, metadata)
election_vote = cls(cls.OPERATION, {'id': election_id}, inputs, outputs, metadata)
(inputs, outputs) = cls.validate_transfer(inputs, recipients, [election_id], metadata)
election_vote = cls(cls.OPERATION, [{'id': election_id}], inputs, outputs, metadata)
cls.validate_schema(election_vote.to_dict())
return election_vote

View File

@ -35,7 +35,7 @@ class ValidatorElection(Election):
@classmethod
def validate_schema(cls, tx):
super(ValidatorElection, cls).validate_schema(tx)
validate_asset_public_key(tx['asset']['data']['public_key'])
validate_asset_public_key(tx['assets'][0]['data']['public_key'])
def has_concluded(self, planet, *args, **kwargs):
latest_block = planet.get_latest_block()
@ -51,7 +51,7 @@ class ValidatorElection(Election):
return super().has_concluded(planet, *args, **kwargs)
def on_approval(self, planet, new_height):
validator_updates = [self.asset['data']]
validator_updates = [self.assets[0]['data']]
curr_validator_set = planet.get_validators(new_height)
updated_validator_set = new_validator_set(curr_validator_set,
validator_updates)
@ -61,7 +61,7 @@ class ValidatorElection(Election):
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.
planet.store_validator_set(new_height + 1, updated_validator_set)
return encode_validator(self.asset['data'])
return encode_validator(self.assets[0]['data'])
def on_rollback(self, planetmint, new_height):
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.