mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Problem: config utils tests are disabled. (#2402)
Solution: enable them back, cleanup no longer relevant parts.
This commit is contained in:
parent
c3f5e2a654
commit
a0670b6d06
@ -1,5 +1,4 @@
|
|||||||
import copy
|
import copy
|
||||||
import logging
|
|
||||||
from unittest.mock import mock_open, patch
|
from unittest.mock import mock_open, patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
@ -10,13 +9,13 @@ import bigchaindb
|
|||||||
ORIGINAL_CONFIG = copy.deepcopy(bigchaindb._config)
|
ORIGINAL_CONFIG = copy.deepcopy(bigchaindb._config)
|
||||||
|
|
||||||
|
|
||||||
|
pytestmark = pytest.mark.tendermint
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function', autouse=True)
|
@pytest.fixture(scope='function', autouse=True)
|
||||||
def clean_config(monkeypatch, request):
|
def clean_config(monkeypatch, request):
|
||||||
import bigchaindb
|
|
||||||
original_config = copy.deepcopy(ORIGINAL_CONFIG)
|
original_config = copy.deepcopy(ORIGINAL_CONFIG)
|
||||||
backend = request.config.getoption('--database-backend')
|
backend = request.config.getoption('--database-backend')
|
||||||
if backend == 'mongodb-ssl':
|
|
||||||
backend = 'mongodb'
|
|
||||||
original_config['database'] = bigchaindb._database_map[backend]
|
original_config['database'] = bigchaindb._database_map[backend]
|
||||||
monkeypatch.setattr('bigchaindb.config', original_config)
|
monkeypatch.setattr('bigchaindb.config', original_config)
|
||||||
|
|
||||||
@ -31,21 +30,6 @@ def test_bigchain_instance_is_initialized_when_conf_provided(request):
|
|||||||
assert bigchaindb.config['CONFIGURED'] is True
|
assert bigchaindb.config['CONFIGURED'] is True
|
||||||
|
|
||||||
|
|
||||||
def test_bigchain_instance_raises_when_not_configured(request, monkeypatch):
|
|
||||||
import bigchaindb
|
|
||||||
from bigchaindb import config_utils
|
|
||||||
from bigchaindb.common import exceptions
|
|
||||||
from bigchaindb import BigchainDB
|
|
||||||
assert 'CONFIGURED' not in bigchaindb.config
|
|
||||||
|
|
||||||
# We need to disable ``bigchaindb.config_utils.autoconfigure`` to avoid reading
|
|
||||||
# from existing configurations
|
|
||||||
monkeypatch.setattr(config_utils, 'autoconfigure', lambda: 0)
|
|
||||||
|
|
||||||
with pytest.raises(exceptions.ConfigurationError):
|
|
||||||
BigchainDB()
|
|
||||||
|
|
||||||
|
|
||||||
def test_load_consensus_plugin_loads_default_rules_without_name():
|
def test_load_consensus_plugin_loads_default_rules_without_name():
|
||||||
from bigchaindb import config_utils
|
from bigchaindb import config_utils
|
||||||
from bigchaindb.consensus import BaseConsensusRules
|
from bigchaindb.consensus import BaseConsensusRules
|
||||||
@ -146,7 +130,7 @@ def test_env_config(monkeypatch):
|
|||||||
assert result == expected
|
assert result == expected
|
||||||
|
|
||||||
|
|
||||||
def test_autoconfigure_read_both_from_file_and_env(monkeypatch, request, ssl_context):
|
def test_autoconfigure_read_both_from_file_and_env(monkeypatch, request):
|
||||||
# constants
|
# constants
|
||||||
DATABASE_HOST = 'test-host'
|
DATABASE_HOST = 'test-host'
|
||||||
DATABASE_NAME = 'test-dbname'
|
DATABASE_NAME = 'test-dbname'
|
||||||
@ -159,7 +143,6 @@ def test_autoconfigure_read_both_from_file_and_env(monkeypatch, request, ssl_con
|
|||||||
WSSERVER_ADVERTISED_SCHEME = 'wss'
|
WSSERVER_ADVERTISED_SCHEME = 'wss'
|
||||||
WSSERVER_ADVERTISED_HOST = 'a.b.c.d'
|
WSSERVER_ADVERTISED_HOST = 'a.b.c.d'
|
||||||
WSSERVER_ADVERTISED_PORT = 89
|
WSSERVER_ADVERTISED_PORT = 89
|
||||||
KEYRING = 'pubkey_0:pubkey_1:pubkey_2'
|
|
||||||
LOG_FILE = '/somewhere/something.log'
|
LOG_FILE = '/somewhere/something.log'
|
||||||
|
|
||||||
file_config = {
|
file_config = {
|
||||||
@ -171,93 +154,57 @@ def test_autoconfigure_read_both_from_file_and_env(monkeypatch, request, ssl_con
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
monkeypatch.setattr('bigchaindb.config_utils.file_config', lambda *args, **kwargs: file_config)
|
monkeypatch.setattr('bigchaindb.config_utils.file_config',
|
||||||
|
lambda *args, **kwargs: file_config)
|
||||||
|
|
||||||
if DATABASE_BACKEND == 'mongodb-ssl':
|
monkeypatch.setattr('os.environ', {
|
||||||
monkeypatch.setattr('os.environ', {'BIGCHAINDB_DATABASE_NAME': DATABASE_NAME,
|
'BIGCHAINDB_DATABASE_NAME': DATABASE_NAME,
|
||||||
'BIGCHAINDB_DATABASE_PORT': str(DATABASE_PORT),
|
'BIGCHAINDB_DATABASE_PORT': str(DATABASE_PORT),
|
||||||
'BIGCHAINDB_DATABASE_BACKEND': 'mongodb',
|
'BIGCHAINDB_DATABASE_BACKEND': DATABASE_BACKEND,
|
||||||
'BIGCHAINDB_SERVER_BIND': SERVER_BIND,
|
'BIGCHAINDB_SERVER_BIND': SERVER_BIND,
|
||||||
'BIGCHAINDB_WSSERVER_SCHEME': WSSERVER_SCHEME,
|
'BIGCHAINDB_WSSERVER_SCHEME': WSSERVER_SCHEME,
|
||||||
'BIGCHAINDB_WSSERVER_HOST': WSSERVER_HOST,
|
'BIGCHAINDB_WSSERVER_HOST': WSSERVER_HOST,
|
||||||
'BIGCHAINDB_WSSERVER_PORT': WSSERVER_PORT,
|
'BIGCHAINDB_WSSERVER_PORT': WSSERVER_PORT,
|
||||||
'BIGCHAINDB_WSSERVER_ADVERTISED_SCHEME': WSSERVER_ADVERTISED_SCHEME,
|
'BIGCHAINDB_WSSERVER_ADVERTISED_SCHEME': WSSERVER_ADVERTISED_SCHEME,
|
||||||
'BIGCHAINDB_WSSERVER_ADVERTISED_HOST': WSSERVER_ADVERTISED_HOST,
|
'BIGCHAINDB_WSSERVER_ADVERTISED_HOST': WSSERVER_ADVERTISED_HOST,
|
||||||
'BIGCHAINDB_WSSERVER_ADVERTISED_PORT': WSSERVER_ADVERTISED_PORT,
|
'BIGCHAINDB_WSSERVER_ADVERTISED_PORT': WSSERVER_ADVERTISED_PORT,
|
||||||
'BIGCHAINDB_KEYRING': KEYRING,
|
'BIGCHAINDB_LOG_FILE': LOG_FILE,
|
||||||
'BIGCHAINDB_LOG_FILE': LOG_FILE,
|
'BIGCHAINDB_LOG_FILE': LOG_FILE,
|
||||||
'BIGCHAINDB_DATABASE_CA_CERT': ssl_context.ca,
|
'BIGCHAINDB_DATABASE_CA_CERT': 'ca_cert',
|
||||||
'BIGCHAINDB_DATABASE_CRLFILE': ssl_context.crl,
|
'BIGCHAINDB_DATABASE_CRLFILE': 'crlfile',
|
||||||
'BIGCHAINDB_DATABASE_CERTFILE': ssl_context.cert,
|
'BIGCHAINDB_DATABASE_CERTFILE': 'certfile',
|
||||||
'BIGCHAINDB_DATABASE_KEYFILE': ssl_context.key,
|
'BIGCHAINDB_DATABASE_KEYFILE': 'keyfile',
|
||||||
'BIGCHAINDB_DATABASE_KEYFILE_PASSPHRASE': None})
|
'BIGCHAINDB_DATABASE_KEYFILE_PASSPHRASE': 'passphrase',
|
||||||
else:
|
})
|
||||||
monkeypatch.setattr('os.environ', {'BIGCHAINDB_DATABASE_NAME': DATABASE_NAME,
|
|
||||||
'BIGCHAINDB_DATABASE_PORT': str(DATABASE_PORT),
|
|
||||||
'BIGCHAINDB_DATABASE_BACKEND': DATABASE_BACKEND,
|
|
||||||
'BIGCHAINDB_SERVER_BIND': SERVER_BIND,
|
|
||||||
'BIGCHAINDB_WSSERVER_SCHEME': WSSERVER_SCHEME,
|
|
||||||
'BIGCHAINDB_WSSERVER_HOST': WSSERVER_HOST,
|
|
||||||
'BIGCHAINDB_WSSERVER_PORT': WSSERVER_PORT,
|
|
||||||
'BIGCHAINDB_WSSERVER_ADVERTISED_SCHEME': WSSERVER_ADVERTISED_SCHEME,
|
|
||||||
'BIGCHAINDB_WSSERVER_ADVERTISED_HOST': WSSERVER_ADVERTISED_HOST,
|
|
||||||
'BIGCHAINDB_WSSERVER_ADVERTISED_PORT': WSSERVER_ADVERTISED_PORT,
|
|
||||||
'BIGCHAINDB_KEYRING': KEYRING,
|
|
||||||
'BIGCHAINDB_LOG_FILE': LOG_FILE})
|
|
||||||
|
|
||||||
import bigchaindb
|
import bigchaindb
|
||||||
from bigchaindb import config_utils
|
from bigchaindb import config_utils
|
||||||
from bigchaindb.log.configs import SUBSCRIBER_LOGGING_CONFIG as log_config
|
from bigchaindb.log import DEFAULT_LOGGING_CONFIG as log_config
|
||||||
config_utils.autoconfigure()
|
config_utils.autoconfigure()
|
||||||
|
|
||||||
database_mongodb = {
|
database_mongodb = {
|
||||||
'backend': 'mongodb',
|
'backend': 'localmongodb',
|
||||||
'host': DATABASE_HOST,
|
'host': DATABASE_HOST,
|
||||||
'port': DATABASE_PORT,
|
'port': DATABASE_PORT,
|
||||||
'name': DATABASE_NAME,
|
'name': DATABASE_NAME,
|
||||||
'connection_timeout': 5000,
|
'connection_timeout': 5000,
|
||||||
'max_tries': 3,
|
'max_tries': 3,
|
||||||
'replicaset': 'bigchain-rs',
|
'replicaset': None,
|
||||||
'ssl': False,
|
'ssl': False,
|
||||||
'login': None,
|
'login': None,
|
||||||
'password': None,
|
'password': None,
|
||||||
'ca_cert': None,
|
'ca_cert': 'ca_cert',
|
||||||
'certfile': None,
|
'certfile': 'certfile',
|
||||||
'keyfile': None,
|
'keyfile': 'keyfile',
|
||||||
'keyfile_passphrase': None,
|
'keyfile_passphrase': 'passphrase',
|
||||||
'crlfile': None
|
'crlfile': 'crlfile',
|
||||||
}
|
}
|
||||||
|
|
||||||
database_mongodb_ssl = {
|
|
||||||
'backend': 'mongodb',
|
|
||||||
'host': DATABASE_HOST,
|
|
||||||
'port': DATABASE_PORT,
|
|
||||||
'name': DATABASE_NAME,
|
|
||||||
'connection_timeout': 5000,
|
|
||||||
'max_tries': 3,
|
|
||||||
'replicaset': 'bigchain-rs',
|
|
||||||
'ssl': True,
|
|
||||||
'login': None,
|
|
||||||
'password': None,
|
|
||||||
'ca_cert': ssl_context.ca,
|
|
||||||
'crlfile': ssl_context.crl,
|
|
||||||
'certfile': ssl_context.cert,
|
|
||||||
'keyfile': ssl_context.key,
|
|
||||||
'keyfile_passphrase': None
|
|
||||||
}
|
|
||||||
|
|
||||||
database = {}
|
|
||||||
if DATABASE_BACKEND == 'mongodb':
|
|
||||||
database = database_mongodb
|
|
||||||
elif DATABASE_BACKEND == 'mongodb-ssl':
|
|
||||||
database = database_mongodb_ssl
|
|
||||||
|
|
||||||
assert bigchaindb.config == {
|
assert bigchaindb.config == {
|
||||||
'CONFIGURED': True,
|
'CONFIGURED': True,
|
||||||
'server': {
|
'server': {
|
||||||
'bind': SERVER_BIND,
|
'bind': SERVER_BIND,
|
||||||
'loglevel': logging.getLevelName(
|
'loglevel': 'info',
|
||||||
log_config['handlers']['console']['level']).lower(),
|
|
||||||
'workers': None,
|
'workers': None,
|
||||||
},
|
},
|
||||||
'wsserver': {
|
'wsserver': {
|
||||||
@ -268,23 +215,22 @@ def test_autoconfigure_read_both_from_file_and_env(monkeypatch, request, ssl_con
|
|||||||
'advertised_host': WSSERVER_ADVERTISED_HOST,
|
'advertised_host': WSSERVER_ADVERTISED_HOST,
|
||||||
'advertised_port': WSSERVER_ADVERTISED_PORT,
|
'advertised_port': WSSERVER_ADVERTISED_PORT,
|
||||||
},
|
},
|
||||||
'database': database,
|
'database': database_mongodb,
|
||||||
'tendermint': {
|
'tendermint': {
|
||||||
'host': None,
|
'host': 'localhost',
|
||||||
'port': None,
|
'port': 26657,
|
||||||
},
|
},
|
||||||
'log': {
|
'log': {
|
||||||
'file': LOG_FILE,
|
'file': LOG_FILE,
|
||||||
|
'level_console': 'debug',
|
||||||
'error_file': log_config['handlers']['errors']['filename'],
|
'error_file': log_config['handlers']['errors']['filename'],
|
||||||
'level_console': 'debug',
|
'level_console': 'debug',
|
||||||
'level_logfile': logging.getLevelName(
|
'level_logfile': 'info',
|
||||||
log_config['handlers']['file']['level']).lower(),
|
|
||||||
'datefmt_console': log_config['formatters']['console']['datefmt'],
|
'datefmt_console': log_config['formatters']['console']['datefmt'],
|
||||||
'datefmt_logfile': log_config['formatters']['file']['datefmt'],
|
'datefmt_logfile': log_config['formatters']['file']['datefmt'],
|
||||||
'fmt_console': log_config['formatters']['console']['format'],
|
'fmt_console': log_config['formatters']['console']['format'],
|
||||||
'fmt_logfile': log_config['formatters']['file']['format'],
|
'fmt_logfile': log_config['formatters']['file']['format'],
|
||||||
'granular_levels': {},
|
'granular_levels': {},
|
||||||
'port': 9020
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -381,18 +327,3 @@ def test_database_envs(env_name, env_value, config_key, monkeypatch):
|
|||||||
expected_config['database'][config_key] = env_value
|
expected_config['database'][config_key] = env_value
|
||||||
|
|
||||||
assert bigchaindb.config == expected_config
|
assert bigchaindb.config == expected_config
|
||||||
|
|
||||||
|
|
||||||
def test_database_envs_replicaset(monkeypatch):
|
|
||||||
# the replica set env is only used if the backend is mongodb
|
|
||||||
import bigchaindb
|
|
||||||
|
|
||||||
monkeypatch.setattr('os.environ', {'BIGCHAINDB_DATABASE_REPLICASET':
|
|
||||||
'test-replicaset'})
|
|
||||||
bigchaindb.config['database'] = bigchaindb._database_mongodb
|
|
||||||
bigchaindb.config_utils.autoconfigure()
|
|
||||||
|
|
||||||
expected_config = copy.deepcopy(bigchaindb.config)
|
|
||||||
expected_config['database']['replicaset'] = 'test-replicaset'
|
|
||||||
|
|
||||||
assert bigchaindb.config == expected_config
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user