mirror of
https://github.com/planetmint/planetmint.git
synced 2025-11-25 15:05:49 +00:00
fixed election test cases
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
parent
2ecace2f63
commit
bbc78b152f
@ -239,17 +239,12 @@ class Planetmint(object):
|
|||||||
def get_transaction(self, transaction_id):
|
def get_transaction(self, transaction_id):
|
||||||
transaction = backend.query.get_transaction(self.connection, 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:
|
if transaction:
|
||||||
# asset = backend.query.get_asset(self.connection, transaction_id)
|
|
||||||
assets = backend.query.get_assets(self.connection, [transaction_id])
|
assets = backend.query.get_assets(self.connection, [transaction_id])
|
||||||
metadata = backend.query.get_metadata(self.connection, [transaction_id])
|
metadata = backend.query.get_metadata(self.connection, [transaction_id])
|
||||||
if transaction['operation'] == 'CREATE' and assets:
|
# NOTE: assets must not be replaced for transfer transactions
|
||||||
# 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
|
# TODO: check if this holds true for other tx types
|
||||||
# transaction['assets'] = [asset]
|
if transaction['operation'] != 'TRANSFER' and assets:
|
||||||
transaction['assets'] = list(assets)
|
transaction['assets'] = list(assets)
|
||||||
|
|
||||||
if 'metadata' not in transaction:
|
if 'metadata' not in transaction:
|
||||||
|
|||||||
@ -143,8 +143,8 @@ class Election(Transaction):
|
|||||||
uuid = uuid4()
|
uuid = uuid4()
|
||||||
election_data['seed'] = str(uuid)
|
election_data['seed'] = str(uuid)
|
||||||
|
|
||||||
(inputs, outputs) = Create.validate_create(initiator, voters, election_data, metadata)
|
(inputs, outputs) = Create.validate_create(initiator, voters, [election_data], metadata)
|
||||||
election = cls(cls.OPERATION, {'data': election_data}, inputs, outputs, metadata)
|
election = cls(cls.OPERATION, [{'data': election_data}], inputs, outputs, metadata)
|
||||||
cls.validate_schema(election.to_dict())
|
cls.validate_schema(election.to_dict())
|
||||||
return election
|
return election
|
||||||
|
|
||||||
@ -268,7 +268,7 @@ class Election(Transaction):
|
|||||||
if not isinstance(tx, Vote):
|
if not isinstance(tx, Vote):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
election_id = tx.asset['id']
|
election_id = tx.assets[0]['id']
|
||||||
if election_id not in elections:
|
if election_id not in elections:
|
||||||
elections[election_id] = []
|
elections[election_id] = []
|
||||||
elections[election_id].append(tx)
|
elections[election_id].append(tx)
|
||||||
|
|||||||
@ -40,8 +40,8 @@ class Vote(Transfer):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def generate(cls, inputs, recipients, election_id, metadata=None):
|
def generate(cls, inputs, recipients, election_id, metadata=None):
|
||||||
(inputs, outputs) = cls.validate_transfer(inputs, recipients, election_id, metadata)
|
(inputs, outputs) = cls.validate_transfer(inputs, recipients, [election_id], metadata)
|
||||||
election_vote = cls(cls.OPERATION, {'id': election_id}, inputs, outputs, metadata)
|
election_vote = cls(cls.OPERATION, [{'id': election_id}], inputs, outputs, metadata)
|
||||||
cls.validate_schema(election_vote.to_dict())
|
cls.validate_schema(election_vote.to_dict())
|
||||||
return election_vote
|
return election_vote
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ class ValidatorElection(Election):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def validate_schema(cls, tx):
|
def validate_schema(cls, tx):
|
||||||
super(ValidatorElection, cls).validate_schema(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):
|
def has_concluded(self, planet, *args, **kwargs):
|
||||||
latest_block = planet.get_latest_block()
|
latest_block = planet.get_latest_block()
|
||||||
@ -51,7 +51,7 @@ class ValidatorElection(Election):
|
|||||||
return super().has_concluded(planet, *args, **kwargs)
|
return super().has_concluded(planet, *args, **kwargs)
|
||||||
|
|
||||||
def on_approval(self, planet, new_height):
|
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)
|
curr_validator_set = planet.get_validators(new_height)
|
||||||
updated_validator_set = new_validator_set(curr_validator_set,
|
updated_validator_set = new_validator_set(curr_validator_set,
|
||||||
validator_updates)
|
validator_updates)
|
||||||
@ -61,7 +61,7 @@ class ValidatorElection(Election):
|
|||||||
|
|
||||||
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.
|
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.
|
||||||
planet.store_validator_set(new_height + 1, updated_validator_set)
|
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):
|
def on_rollback(self, planetmint, new_height):
|
||||||
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.
|
# TODO change to `new_height + 2` when upgrading to Tendermint 0.24.0.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user