diff --git a/tests/test_Configuration.py b/tests/test_Configuration.py new file mode 100644 index 0000000000000000000000000000000000000000..00d5ddf7f76ca08f6a46e8719f77b03f56c70d57 --- /dev/null +++ b/tests/test_Configuration.py @@ -0,0 +1,44 @@ +import os + +import pytest + +from . import any_date, relpath + +import oxrlib.config +import oxrlib.loaders + +INI_DIR_PATH = relpath('config_ini') + +def config_from(ini_filename, arglist=None): + if arglist is None: + arglist = ['historical', any_date().isoformat()] + ini_path = INI_DIR_PATH / ini_filename + return oxrlib.config.Configuration(['--config-file', ini_path.as_posix()] + arglist) + +def test_full_config(): + config = config_from('full.ini') + loaders = config.get_loaders().loaders + assert type(loaders[0]) is oxrlib.loaders.FileCache + assert type(loaders[1]) is oxrlib.loaders.OXRAPIRequest + assert len(loaders) == 2 + +def test_incomplete_config(): + config = config_from('incomplete.ini') + assert not config.get_loaders().loaders + +def test_empty_config(): + config = config_from(os.devnull) + assert not config.get_loaders().loaders + +@pytest.mark.parametrize('ini_filename,expected_currency,use_switch', [ + (os.devnull, 'USD', False), + ('full.ini', 'INI', False), + ('full.ini', 'EUR', True), +]) +def test_historical_default_base(ini_filename, expected_currency, use_switch, any_date): + arglist = ['historical'] + if use_switch: + arglist.extend(['--base', expected_currency]) + arglist.append(any_date.isoformat()) + config = config_from(ini_filename, arglist) + assert config.args.base == expected_currency