mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Improved tests
Fixed typo Add extra validation to hostnames to make sure host is not empty
This commit is contained in:
parent
f0e298bcd7
commit
84626b6e32
@ -31,7 +31,7 @@ def add_replicas(connection, replicas):
|
|||||||
conf = connection.conn.admin.command('replSetGetConfig')
|
conf = connection.conn.admin.command('replSetGetConfig')
|
||||||
|
|
||||||
# MongoDB does not automatically add an id for the members so we need
|
# MongoDB does not automatically add an id for the members so we need
|
||||||
# to choose one that does not exists yet. The safest way is to use
|
# to choose one that does not exist yet. The safest way is to use
|
||||||
# incrementing ids, so we first check what is the highest id already in
|
# incrementing ids, so we first check what is the highest id already in
|
||||||
# the set and continue from there.
|
# the set and continue from there.
|
||||||
cur_id = max([member['_id'] for member in conf['config']['members']])
|
cur_id = max([member['_id'] for member in conf['config']['members']])
|
||||||
|
|||||||
@ -116,7 +116,7 @@ def mongodb_host(host):
|
|||||||
raise argparse.ArgumentTypeError(exc.args[0])
|
raise argparse.ArgumentTypeError(exc.args[0])
|
||||||
|
|
||||||
# we do require the port to be provided.
|
# we do require the port to be provided.
|
||||||
if port is None:
|
if port is None or hostname == '':
|
||||||
raise argparse.ArgumentTypeError('expected host in the form '
|
raise argparse.ArgumentTypeError('expected host in the form '
|
||||||
'`host:port`. Got `{}` instead.'
|
'`host:port`. Got `{}` instead.'
|
||||||
.format(host))
|
.format(host))
|
||||||
|
|||||||
@ -22,6 +22,8 @@ def test_make_sure_we_dont_remove_any_command():
|
|||||||
assert parser.parse_args(['set-shards', '1']).command
|
assert parser.parse_args(['set-shards', '1']).command
|
||||||
assert parser.parse_args(['set-replicas', '1']).command
|
assert parser.parse_args(['set-replicas', '1']).command
|
||||||
assert parser.parse_args(['load']).command
|
assert parser.parse_args(['load']).command
|
||||||
|
assert parser.parse_args(['add-replicas', 'localhost:27017']).command
|
||||||
|
assert parser.parse_args(['remove-replicas', 'localhost:27017']).command
|
||||||
|
|
||||||
|
|
||||||
def test_start_raises_if_command_not_implemented():
|
def test_start_raises_if_command_not_implemented():
|
||||||
@ -379,7 +381,7 @@ def test_calling_main(start_mock, base_parser_mock, parse_args_mock,
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures('ignore_local_config_file')
|
@pytest.mark.usefixtures('ignore_local_config_file')
|
||||||
@patch('bigchaindb.backend.admin.add_replicas')
|
@patch('bigchaindb.commands.bigchain.add_replicas')
|
||||||
def test_run_add_replicas(mock_add_replicas):
|
def test_run_add_replicas(mock_add_replicas):
|
||||||
from bigchaindb.commands.bigchain import run_add_replicas
|
from bigchaindb.commands.bigchain import run_add_replicas
|
||||||
from bigchaindb.backend.exceptions import DatabaseOpFailedError
|
from bigchaindb.backend.exceptions import DatabaseOpFailedError
|
||||||
@ -389,18 +391,24 @@ def test_run_add_replicas(mock_add_replicas):
|
|||||||
# test add_replicas no raises
|
# test add_replicas no raises
|
||||||
mock_add_replicas.return_value = None
|
mock_add_replicas.return_value = None
|
||||||
assert run_add_replicas(args) is None
|
assert run_add_replicas(args) is None
|
||||||
|
assert mock_add_replicas.call_count == 1
|
||||||
|
mock_add_replicas.reset_mock()
|
||||||
|
|
||||||
# test add_replicas with `DatabaseOpFailedError`
|
# test add_replicas with `DatabaseOpFailedError`
|
||||||
mock_add_replicas.side_effect = DatabaseOpFailedError()
|
mock_add_replicas.side_effect = DatabaseOpFailedError()
|
||||||
assert run_add_replicas(args) is None
|
assert run_add_replicas(args) is None
|
||||||
|
assert mock_add_replicas.call_count == 1
|
||||||
|
mock_add_replicas.reset_mock()
|
||||||
|
|
||||||
# test add_replicas with `NotImplementedError`
|
# test add_replicas with `NotImplementedError`
|
||||||
mock_add_replicas.side_effect = NotImplementedError()
|
mock_add_replicas.side_effect = NotImplementedError()
|
||||||
assert run_add_replicas(args) is None
|
assert run_add_replicas(args) is None
|
||||||
|
assert mock_add_replicas.call_count == 1
|
||||||
|
mock_add_replicas.reset_mock()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures('ignore_local_config_file')
|
@pytest.mark.usefixtures('ignore_local_config_file')
|
||||||
@patch('bigchaindb.backend.admin.remove_replicas')
|
@patch('bigchaindb.commands.bigchain.remove_replicas')
|
||||||
def test_run_remove_replicas(mock_remove_replicas):
|
def test_run_remove_replicas(mock_remove_replicas):
|
||||||
from bigchaindb.commands.bigchain import run_remove_replicas
|
from bigchaindb.commands.bigchain import run_remove_replicas
|
||||||
from bigchaindb.backend.exceptions import DatabaseOpFailedError
|
from bigchaindb.backend.exceptions import DatabaseOpFailedError
|
||||||
@ -410,14 +418,20 @@ def test_run_remove_replicas(mock_remove_replicas):
|
|||||||
# test add_replicas no raises
|
# test add_replicas no raises
|
||||||
mock_remove_replicas.return_value = None
|
mock_remove_replicas.return_value = None
|
||||||
assert run_remove_replicas(args) is None
|
assert run_remove_replicas(args) is None
|
||||||
|
assert mock_remove_replicas.call_count == 1
|
||||||
|
mock_remove_replicas.reset_mock()
|
||||||
|
|
||||||
# test add_replicas with `DatabaseOpFailedError`
|
# test add_replicas with `DatabaseOpFailedError`
|
||||||
mock_remove_replicas.side_effect = DatabaseOpFailedError()
|
mock_remove_replicas.side_effect = DatabaseOpFailedError()
|
||||||
assert run_remove_replicas(args) is None
|
assert run_remove_replicas(args) is None
|
||||||
|
assert mock_remove_replicas.call_count == 1
|
||||||
|
mock_remove_replicas.reset_mock()
|
||||||
|
|
||||||
# test add_replicas with `NotImplementedError`
|
# test add_replicas with `NotImplementedError`
|
||||||
mock_remove_replicas.side_effect = NotImplementedError()
|
mock_remove_replicas.side_effect = NotImplementedError()
|
||||||
assert run_remove_replicas(args) is None
|
assert run_remove_replicas(args) is None
|
||||||
|
assert mock_remove_replicas.call_count == 1
|
||||||
|
mock_remove_replicas.reset_mock()
|
||||||
|
|
||||||
|
|
||||||
def test_mongodb_host_type():
|
def test_mongodb_host_type():
|
||||||
@ -430,3 +444,7 @@ def test_mongodb_host_type():
|
|||||||
# no port information provided
|
# no port information provided
|
||||||
with pytest.raises(ArgumentTypeError):
|
with pytest.raises(ArgumentTypeError):
|
||||||
mongodb_host('localhost')
|
mongodb_host('localhost')
|
||||||
|
|
||||||
|
# bad host provided
|
||||||
|
with pytest.raises(ArgumentTypeError):
|
||||||
|
mongodb_host(':27017')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user