Problem: Needed some of the fixtures from tests/upsert_validator/conftest.py for tests in another directory

Solution: Moved the fixtures to `tests/conftest.py`
This commit is contained in:
z-bowen 2018-08-22 18:07:14 +02:00
parent 4a4cbc8de0
commit e7d89abfce
2 changed files with 57 additions and 42 deletions

View File

@ -20,6 +20,7 @@ from logging.config import dictConfig
import pytest import pytest
from pymongo import MongoClient from pymongo import MongoClient
from bigchaindb import ValidatorElection
from bigchaindb.common import crypto from bigchaindb.common import crypto
from bigchaindb.log import setup_logging from bigchaindb.log import setup_logging
from bigchaindb.tendermint_utils import key_from_base64 from bigchaindb.tendermint_utils import key_from_base64
@ -710,7 +711,9 @@ def priv_validator_path(node_keys):
def validators(b, node_keys): def validators(b, node_keys):
from bigchaindb.backend import query from bigchaindb.backend import query
original_validators = b.get_validators() height = get_block_height(b)
original_validators = b.get_validators(height=height)
(public_key, private_key) = list(node_keys.items())[0] (public_key, private_key) = list(node_keys.items())[0]
@ -721,13 +724,64 @@ def validators(b, node_keys):
'voting_power': 10}] 'voting_power': 10}]
validator_update = {'validators': validator_set, validator_update = {'validators': validator_set,
'height': b.get_latest_block()['height'] + 1} 'height': height + 1}
query.store_validator_set(b.connection, validator_update) query.store_validator_set(b.connection, validator_update)
yield yield
height = get_block_height(b)
validator_update = {'validators': original_validators, validator_update = {'validators': original_validators,
'height': b.get_latest_block()['height']} 'height': height}
query.store_validator_set(b.connection, validator_update) query.store_validator_set(b.connection, validator_update)
def get_block_height(b):
if b.get_latest_block():
height = b.get_latest_block()['height']
else:
height = 0
return height
@pytest.fixture
def b_mock(b, network_validators):
b.get_validators = mock_get_validators(network_validators)
return b
def mock_get_validators(network_validators):
def validator_set(height):
validators = []
for public_key, power in network_validators.items():
validators.append({
'pub_key': {'type': 'AC26791624DE60', 'data': public_key},
'voting_power': power
})
return validators
return validator_set
@pytest.fixture
def valid_election(b_mock, node_key, new_validator):
voters = ValidatorElection.recipients(b_mock)
return ValidatorElection.generate([node_key.public_key],
voters,
new_validator, None).sign([node_key.private_key])
@pytest.fixture
def new_validator():
public_key = '1718D2DBFF00158A0852A17A01C78F4DCF3BA8E4FB7B8586807FAC182A535034'
power = 1
node_id = 'fake_node_id'
return {'public_key': public_key,
'power': power,
'node_id': node_id}

View File

@ -7,45 +7,6 @@ import pytest
from bigchaindb.upsert_validator import ValidatorElection from bigchaindb.upsert_validator import ValidatorElection
@pytest.fixture
def b_mock(b, network_validators):
b.get_validators = mock_get_validators(network_validators)
return b
@pytest.fixture
def new_validator():
public_key = '1718D2DBFF00158A0852A17A01C78F4DCF3BA8E4FB7B8586807FAC182A535034'
power = 1
node_id = 'fake_node_id'
return {'public_key': public_key,
'power': power,
'node_id': node_id}
def mock_get_validators(network_validators):
def validator_set(height):
validators = []
for public_key, power in network_validators.items():
validators.append({
'pub_key': {'type': 'AC26791624DE60', 'data': public_key},
'voting_power': power
})
return validators
return validator_set
@pytest.fixture
def valid_election(b_mock, node_key, new_validator):
voters = ValidatorElection.recipients(b_mock)
return ValidatorElection.generate([node_key.public_key],
voters,
new_validator, None).sign([node_key.private_key])
@pytest.fixture @pytest.fixture
def valid_election_b(b, node_key, new_validator): def valid_election_b(b, node_key, new_validator):
voters = ValidatorElection.recipients(b) voters = ValidatorElection.recipients(b)