mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00

* Problem: `ValidatorElection` and `MigrationElection` need to inherit from a common `Election` class. Solution: Factored the common logic out of `ValidatorElection` and moved it to `Election` parent class. * Problem: No need to store different types of elections in their own tables Solution: Remove `DB_TABLE` property from `Election` class. Solution: Created the `elections` table with secondary_index `election_id`. * Problem: `UpsertValidatorVote` can be generalized to just be `Vote` Solution: Renamed, refactored and moved the `Vote` class to tie in with the more general `Election` base class. * Problem: `election_id` is not unique if two elections have the same properties. Solution: Added a random `uuid4` seed to enforce uniqueness.
23 lines
775 B
Python
23 lines
775 B
Python
# Copyright BigchainDB GmbH and BigchainDB contributors
|
|
# SPDX-License-Identifier: (Apache-2.0 AND CC-BY-4.0)
|
|
# Code is Apache-2.0 and docs are CC-BY-4.0
|
|
|
|
VALIDATORS_ENDPOINT = '/api/v1/validators/'
|
|
|
|
|
|
def test_get_validators_endpoint(b, client):
|
|
validator_set = [{'address': 'F5426F0980E36E03044F74DD414248D29ABCBDB2',
|
|
'pub_key': {'data': '4E2685D9016126864733225BE00F005515200727FBAB1312FC78C8B76831255A',
|
|
'type': 'ed25519'},
|
|
'voting_power': 10}]
|
|
b.store_validator_set(23, validator_set)
|
|
|
|
res = client.get(VALIDATORS_ENDPOINT)
|
|
assert is_validator(res.json[0])
|
|
assert res.status_code == 200
|
|
|
|
|
|
# Helper
|
|
def is_validator(v):
|
|
return ('pub_key' in v) and ('voting_power' in v)
|