test case for common CLI parsing

Rearrange current tests.
This commit is contained in:
kryofly 2018-01-06 08:27:44 +01:00
parent 47675943ee
commit e4500af736
1 changed files with 35 additions and 18 deletions

View File

@ -1,13 +1,15 @@
# pragma pylint: disable=missing-docstring,C0103 # pragma pylint: disable=missing-docstring,C0103
import json import json
import time import time
import argparse
from copy import deepcopy from copy import deepcopy
from unittest.mock import MagicMock from unittest.mock import MagicMock
import pytest import pytest
from jsonschema import ValidationError from jsonschema import ValidationError
from freqtrade.misc import throttle, parse_args, load_config from freqtrade.misc import throttle, parse_args, load_config,\
parse_args_common
def test_throttle(): def test_throttle():
@ -38,44 +40,59 @@ def test_throttle_with_assets():
assert result == -1 assert result == -1
# Parse common command-line-arguments
# used for all tools
def test_parse_args_none():
args = parse_args_common([], '')
assert isinstance(args, argparse.ArgumentParser)
def test_parse_args_defaults(): def test_parse_args_defaults():
args = parse_args([], '') args = parse_args([], '')
assert args is not None
assert args.config == 'config.json' assert args.config == 'config.json'
assert args.dynamic_whitelist is None assert args.dynamic_whitelist is None
assert args.loglevel == 20 assert args.loglevel == 20
def test_parse_args_config():
args = parse_args(['-c', '/dev/null'], '')
assert args.config == '/dev/null'
args = parse_args(['--config', '/dev/null'], '')
assert args.config == '/dev/null'
def test_parse_args_verbose():
args = parse_args(['-v'], '')
assert args.loglevel == 10
args = parse_args(['--verbose'], '')
assert args.loglevel == 10
def test_parse_args_version():
with pytest.raises(SystemExit, match=r'0'):
parse_args(['--version'], '')
def test_parse_args_invalid(): def test_parse_args_invalid():
with pytest.raises(SystemExit, match=r'2'): with pytest.raises(SystemExit, match=r'2'):
parse_args(['-c'], '') parse_args(['-c'], '')
def test_parse_args_config(): # Parse command-line-arguments
args = parse_args(['-c', '/dev/null'], '') # used for main, backtesting and hyperopt
assert args is not None
assert args.config == '/dev/null'
args = parse_args(['--config', '/dev/null'], '')
assert args is not None
assert args.config == '/dev/null'
def test_parse_args_verbose():
args = parse_args(['-v'], '')
assert args is not None
assert args.loglevel == 10
def test_parse_args_dynamic_whitelist(): def test_parse_args_dynamic_whitelist():
args = parse_args(['--dynamic-whitelist'], '') args = parse_args(['--dynamic-whitelist'], '')
assert args is not None
assert args.dynamic_whitelist is 20 assert args.dynamic_whitelist is 20
def test_parse_args_dynamic_whitelist_10(): def test_parse_args_dynamic_whitelist_10():
args = parse_args(['--dynamic-whitelist', '10'], '') args = parse_args(['--dynamic-whitelist', '10'], '')
assert args is not None
assert args.dynamic_whitelist is 10 assert args.dynamic_whitelist is 10