Make some improvements to command line messages and error handling

This commit is contained in:
Sylvain Bellemare 2017-03-02 14:36:52 +01:00 committed by Sylvain Bellemare
parent edc5887b42
commit 2e398f606f
3 changed files with 31 additions and 30 deletions

View File

@ -126,7 +126,6 @@ def run_configure(args, skip_if_exists=False):
def run_export_my_pubkey(args):
"""Export this node's public key to standard output
"""
print('bigchaindb args = {}'.format(args))
bigchaindb.config_utils.autoconfigure(filename=args.config, force=True)
pubkey = bigchaindb.config['keypair']['public']
if pubkey is not None:
@ -145,9 +144,8 @@ def _run_init():
schema.init_database(connection=b.connection)
print('Create genesis block.')
b.create_genesis_block()
print('Done, have fun!')
logger.info('Genesis block created.')
def run_init(args):
@ -180,7 +178,7 @@ def run_drop(args):
def run_start(args):
"""Start the processes to run the node"""
print('BigchainDB Version {}'.format(bigchaindb.__version__))
logger.info('BigchainDB Version %s', bigchaindb.__version__)
bigchaindb.config_utils.autoconfigure(filename=args.config, force=True)
if args.allow_temp_keypair:
@ -231,7 +229,7 @@ def _run_load(tx_left, stats):
def run_load(args):
bigchaindb.config_utils.autoconfigure(filename=args.config, force=True)
print('Starting %s processes', args.multiprocess)
logger.info('Starting %s processes', args.multiprocess)
stats = logstats.Logstats()
logstats.thread.start(stats)
@ -250,7 +248,7 @@ def run_set_shards(args):
try:
set_shards(conn, shards=args.num_shards)
except OperationError as e:
print(e)
sys.exit(str(e))
def run_set_replicas(args):
@ -258,7 +256,7 @@ def run_set_replicas(args):
try:
set_replicas(conn, replicas=args.num_replicas)
except OperationError as e:
print(e)
sys.exit(str(e))
def run_add_replicas(args):
@ -269,7 +267,7 @@ def run_add_replicas(args):
try:
add_replicas(conn, args.replicas)
except (OperationError, NotImplementedError) as e:
print(e)
sys.exit(str(e))
else:
print('Added {} to the replicaset.'.format(args.replicas))
@ -282,7 +280,7 @@ def run_remove_replicas(args):
try:
remove_replicas(conn, args.replicas)
except (OperationError, NotImplementedError) as e:
print(e)
sys.exit(str(e))
else:
print('Removed {} from the replicaset.'.format(args.replicas))

View File

@ -59,7 +59,7 @@ def test_set_shards(mock_reconfigure, monkeypatch, b):
mock_reconfigure.assert_called_with(replicas=3, shards=3, dry_run=False)
def test_set_shards_raises_exception(monkeypatch, b, capsys):
def test_set_shards_raises_exception(monkeypatch, b):
from bigchaindb.commands.bigchain import run_set_shards
# test that we are correctly catching the exception
@ -73,11 +73,9 @@ def test_set_shards_raises_exception(monkeypatch, b, capsys):
monkeypatch.setattr(rethinkdb.ast.Table, 'reconfigure', mock_raise)
args = Namespace(num_shards=3)
run_set_shards(args)
out, err = capsys.readouterr()
assert out[:-1] == 'Failed to reconfigure tables.'
assert not err
with pytest.raises(SystemExit) as exc:
run_set_shards(args)
assert exc.value.args == ('Failed to reconfigure tables.',)
@patch('rethinkdb.ast.Table.reconfigure')
@ -104,7 +102,7 @@ def test_set_replicas(mock_reconfigure, monkeypatch, b):
mock_reconfigure.assert_called_with(replicas=2, shards=3, dry_run=False)
def test_set_replicas_raises_exception(monkeypatch, b, capsys):
def test_set_replicas_raises_exception(monkeypatch, b):
from bigchaindb.commands.bigchain import run_set_replicas
# test that we are correctly catching the exception
@ -118,8 +116,6 @@ def test_set_replicas_raises_exception(monkeypatch, b, capsys):
monkeypatch.setattr(rethinkdb.ast.Table, 'reconfigure', mock_raise)
args = Namespace(num_replicas=2)
run_set_replicas(args)
out, err = capsys.readouterr()
assert out[:-1] == 'Failed to reconfigure tables.'
assert not err
with pytest.raises(SystemExit) as exc:
run_set_replicas(args)
assert exc.value.args == ('Failed to reconfigure tables.',)

View File

@ -135,7 +135,6 @@ def test_bigchain_export_my_pubkey_when_pubkey_set(capsys, monkeypatch):
lines = out.splitlines()
assert config['keypair']['public'] in lines
assert 'Charlie_Bucket' in lines
assert 'bigchaindb args = {}'.format(args) in lines
def test_bigchain_export_my_pubkey_when_pubkey_not_set(monkeypatch):
@ -455,14 +454,18 @@ def test_run_add_replicas(mock_add_replicas):
mock_add_replicas.reset_mock()
# test add_replicas with `OperationError`
mock_add_replicas.side_effect = OperationError()
assert run_add_replicas(args) is None
mock_add_replicas.side_effect = OperationError('err')
with pytest.raises(SystemExit) as exc:
run_add_replicas(args)
assert exc.value.args == ('err',)
assert mock_add_replicas.call_count == 1
mock_add_replicas.reset_mock()
# test add_replicas with `NotImplementedError`
mock_add_replicas.side_effect = NotImplementedError()
assert run_add_replicas(args) is None
mock_add_replicas.side_effect = NotImplementedError('err')
with pytest.raises(SystemExit) as exc:
run_add_replicas(args)
assert exc.value.args == ('err',)
assert mock_add_replicas.call_count == 1
mock_add_replicas.reset_mock()
@ -482,14 +485,18 @@ def test_run_remove_replicas(mock_remove_replicas):
mock_remove_replicas.reset_mock()
# test add_replicas with `OperationError`
mock_remove_replicas.side_effect = OperationError()
assert run_remove_replicas(args) is None
mock_remove_replicas.side_effect = OperationError('err')
with pytest.raises(SystemExit) as exc:
run_remove_replicas(args)
assert exc.value.args == ('err',)
assert mock_remove_replicas.call_count == 1
mock_remove_replicas.reset_mock()
# test add_replicas with `NotImplementedError`
mock_remove_replicas.side_effect = NotImplementedError()
assert run_remove_replicas(args) is None
mock_remove_replicas.side_effect = NotImplementedError('err')
with pytest.raises(SystemExit) as exc:
run_remove_replicas(args)
assert exc.value.args == ('err',)
assert mock_remove_replicas.call_count == 1
mock_remove_replicas.reset_mock()