diff --git a/jrnl/exception.py b/jrnl/exception.py index be5c7c23..d8949fa4 100644 --- a/jrnl/exception.py +++ b/jrnl/exception.py @@ -71,6 +71,11 @@ class JrnlExceptionMessage(Enum): https://jrnl.sh/en/stable/external-editors/ """ + AltConfigNotFound = """ + Alternate configuration file not found at the given path: + {config_file} + """ + SomeTest = """ Some error or something diff --git a/jrnl/install.py b/jrnl/install.py index d0115fbf..59c832d4 100644 --- a/jrnl/install.py +++ b/jrnl/install.py @@ -17,6 +17,9 @@ from .config import verify_config_colors from .prompt import yesno from .upgrade import is_old_version +from jrnl.exception import JrnlException +from jrnl.exception import JrnlExceptionMessage + def upgrade_config(config_data, alt_config_path=None): """Checks if there are keys missing in a given config dict, and if so, updates the config file accordingly. @@ -46,14 +49,12 @@ def find_default_config(): def find_alt_config(alt_config): - if os.path.exists(alt_config): - return alt_config - else: - print( - "Alternate configuration file not found at path specified.", file=sys.stderr + if not os.path.exists(alt_config): + raise JrnlException( + JrnlExceptionMessage.AltConfigNotFound, config_file=alt_config ) - print("Exiting.", file=sys.stderr) - sys.exit(1) + + return alt_config def load_or_install_jrnl(alt_config_path): diff --git a/tests/unit/test_config_file.py b/tests/unit/test_config_file.py index 04766f4a..f9cdb7ec 100644 --- a/tests/unit/test_config_file.py +++ b/tests/unit/test_config_file.py @@ -2,6 +2,7 @@ import pytest import os from jrnl.install import find_alt_config +from jrnl.exception import JrnlException def test_find_alt_config(request): @@ -14,9 +15,9 @@ def test_find_alt_config(request): def test_find_alt_config_not_exist(request): bad_config_path = os.path.join( - request.fspath.dirname, "..", "data", "configs", "not-existing-config.yaml" + request.fspath.dirname, "..", "data", "configs", "does-not-exist.yaml" ) - with pytest.raises(SystemExit) as ex: + with pytest.raises(JrnlException) as ex: found_alt_config = find_alt_config(bad_config_path) assert found_alt_config is not None - assert isinstance(ex.value, SystemExit) + assert isinstance(ex.value, JrnlException)