diff --git a/tests/test_config.py b/tests/test_config.py index 44742b1e3372fd39c36651c147e3f89b617243b4..65743b39e1308619f8d2eb21b8dbf8d49d46501d 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -16,6 +16,7 @@ import contextlib import decimal +import operator import os import re @@ -317,3 +318,27 @@ def test_config_file_path_with_subdir(): expected = testutil.test_path('userconfig/conftest/config.ini') config = config_mod.Config() assert config.config_file_path('conftest') == expected + +@pytest.mark.parametrize('path', [ + None, + testutil.test_path('userconfig/conservancy_beancount/config.ini'), +]) +def test_load_file(path): + config = config_mod.Config() + config.load_file(path) + assert config.books_path() == Path('/test/conservancy_beancount') + +@pytest.mark.parametrize('path_func', [ + lambda path: None, + operator.methodcaller('touch', 0o200), +]) +def test_load_file_error(tmp_path, path_func): + config_path = tmp_path / 'nonexistent.ini' + path_func(config_path) + config = config_mod.Config() + with pytest.raises(OSError): + config.load_file(config_path) + +def test_no_books_path(): + config = config_mod.Config() + assert config.books_path() is None