mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Move tests related to commands/tests.py to separate test file
This commit is contained in:
parent
54ea18dd2b
commit
ffe0eb60b9
@ -1,6 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
from unittest.mock import Mock, patch
|
from unittest.mock import Mock, patch
|
||||||
from argparse import Namespace, ArgumentTypeError
|
from argparse import Namespace
|
||||||
import copy
|
import copy
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
@ -26,42 +26,6 @@ def test_make_sure_we_dont_remove_any_command():
|
|||||||
assert parser.parse_args(['remove-replicas', 'localhost:27017']).command
|
assert parser.parse_args(['remove-replicas', 'localhost:27017']).command
|
||||||
|
|
||||||
|
|
||||||
def test_start_raises_if_command_not_implemented():
|
|
||||||
from bigchaindb.commands.bigchain import utils
|
|
||||||
from bigchaindb.commands.bigchain import create_parser
|
|
||||||
|
|
||||||
parser = create_parser()
|
|
||||||
|
|
||||||
with pytest.raises(NotImplementedError):
|
|
||||||
# Will raise because `scope`, the third parameter,
|
|
||||||
# doesn't contain the function `run_start`
|
|
||||||
utils.start(parser, ['start'], {})
|
|
||||||
|
|
||||||
|
|
||||||
def test_start_raises_if_no_arguments_given():
|
|
||||||
from bigchaindb.commands.bigchain import utils
|
|
||||||
from bigchaindb.commands.bigchain import create_parser
|
|
||||||
|
|
||||||
parser = create_parser()
|
|
||||||
|
|
||||||
with pytest.raises(SystemExit):
|
|
||||||
utils.start(parser, [], {})
|
|
||||||
|
|
||||||
|
|
||||||
@patch('multiprocessing.cpu_count', return_value=42)
|
|
||||||
def test_start_sets_multiprocess_var_based_on_cli_args(mock_cpu_count):
|
|
||||||
from bigchaindb.commands.bigchain import utils
|
|
||||||
from bigchaindb.commands.bigchain import create_parser
|
|
||||||
|
|
||||||
def run_load(args):
|
|
||||||
return args
|
|
||||||
|
|
||||||
parser = create_parser()
|
|
||||||
|
|
||||||
assert utils.start(parser, ['load'], {'run_load': run_load}).multiprocess == 1
|
|
||||||
assert utils.start(parser, ['load', '--multiprocess'], {'run_load': run_load}).multiprocess == 42
|
|
||||||
|
|
||||||
|
|
||||||
@patch('bigchaindb.commands.utils.start')
|
@patch('bigchaindb.commands.utils.start')
|
||||||
def test_main_entrypoint(mock_start):
|
def test_main_entrypoint(mock_start):
|
||||||
from bigchaindb.commands.bigchain import main
|
from bigchaindb.commands.bigchain import main
|
||||||
@ -504,19 +468,3 @@ def test_run_remove_replicas(mock_remove_replicas):
|
|||||||
assert exc.value.args == ('err',)
|
assert exc.value.args == ('err',)
|
||||||
assert mock_remove_replicas.call_count == 1
|
assert mock_remove_replicas.call_count == 1
|
||||||
mock_remove_replicas.reset_mock()
|
mock_remove_replicas.reset_mock()
|
||||||
|
|
||||||
|
|
||||||
def test_mongodb_host_type():
|
|
||||||
from bigchaindb.commands.utils import mongodb_host
|
|
||||||
|
|
||||||
# bad port provided
|
|
||||||
with pytest.raises(ArgumentTypeError):
|
|
||||||
mongodb_host('localhost:11111111111')
|
|
||||||
|
|
||||||
# no port information provided
|
|
||||||
with pytest.raises(ArgumentTypeError):
|
|
||||||
mongodb_host('localhost')
|
|
||||||
|
|
||||||
# bad host provided
|
|
||||||
with pytest.raises(ArgumentTypeError):
|
|
||||||
mongodb_host(':27017')
|
|
||||||
|
63
tests/commands/test_utils.py
Normal file
63
tests/commands/test_utils.py
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import argparse
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
|
|
||||||
|
def test_start_raises_if_command_not_implemented():
|
||||||
|
from bigchaindb.commands import utils
|
||||||
|
from bigchaindb.commands.bigchain import create_parser
|
||||||
|
|
||||||
|
parser = create_parser()
|
||||||
|
|
||||||
|
with pytest.raises(NotImplementedError):
|
||||||
|
# Will raise because `scope`, the third parameter,
|
||||||
|
# doesn't contain the function `run_start`
|
||||||
|
utils.start(parser, ['start'], {})
|
||||||
|
|
||||||
|
|
||||||
|
def test_start_raises_if_no_arguments_given():
|
||||||
|
from bigchaindb.commands import utils
|
||||||
|
from bigchaindb.commands.bigchain import create_parser
|
||||||
|
|
||||||
|
parser = create_parser()
|
||||||
|
|
||||||
|
with pytest.raises(SystemExit):
|
||||||
|
utils.start(parser, [], {})
|
||||||
|
|
||||||
|
|
||||||
|
@patch('multiprocessing.cpu_count', return_value=42)
|
||||||
|
def test_start_sets_multiprocess_var_based_on_cli_args(mock_cpu_count):
|
||||||
|
from bigchaindb.commands import utils
|
||||||
|
|
||||||
|
def run_mp_arg_test(args):
|
||||||
|
return args
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
subparser = parser.add_subparsers(title='Commands',
|
||||||
|
dest='command')
|
||||||
|
mp_arg_test_parser = subparser.add_parser('mp_arg_test')
|
||||||
|
mp_arg_test_parser.add_argument('-m', '--multiprocess',
|
||||||
|
nargs='?',
|
||||||
|
type=int,
|
||||||
|
default=False)
|
||||||
|
|
||||||
|
scope = {'run_mp_arg_test': run_mp_arg_test}
|
||||||
|
assert utils.start(parser, ['mp_arg_test'], scope).multiprocess == 1
|
||||||
|
assert utils.start(parser, ['mp_arg_test', '--multiprocess'], scope).multiprocess == 42
|
||||||
|
|
||||||
|
|
||||||
|
def test_mongodb_host_type():
|
||||||
|
from bigchaindb.commands.utils import mongodb_host
|
||||||
|
|
||||||
|
# bad port provided
|
||||||
|
with pytest.raises(argparse.ArgumentTypeError):
|
||||||
|
mongodb_host('localhost:11111111111')
|
||||||
|
|
||||||
|
# no port information provided
|
||||||
|
with pytest.raises(argparse.ArgumentTypeError):
|
||||||
|
mongodb_host('localhost')
|
||||||
|
|
||||||
|
# bad host provided
|
||||||
|
with pytest.raises(argparse.ArgumentTypeError):
|
||||||
|
mongodb_host(':27017')
|
Loading…
x
Reference in New Issue
Block a user