From fa146b1434eda35fb1165b2b7d5dbd883f1ca4d4 Mon Sep 17 00:00:00 2001 From: Micah Jerome Ellison Date: Sat, 21 Aug 2021 14:47:49 -0700 Subject: [PATCH] Warn when DayOne/directory journals have encrypt: true in config (#1325) * Raise exception when trying to commit folder-based journal (including DayOne) * Change negative bool name to a positive * Add test to ensure this doesn't mess with encrypting normal journals * Consolidate and standardized tests * Add failing test for new error message about unencryptable journals * Warn when encrypt is true and journal type is directory/DayOne --- jrnl/Journal.py | 6 ++++++ tests/bdd/features/encrypt.feature | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/jrnl/Journal.py b/jrnl/Journal.py index b0cadf062..17de129f6 100644 --- a/jrnl/Journal.py +++ b/jrnl/Journal.py @@ -407,6 +407,12 @@ def open_journal(journal_name, config, legacy=False): config["journal"] = os.path.expanduser(os.path.expandvars(config["journal"])) if os.path.isdir(config["journal"]): + if config["encrypt"]: + print( + "Warning: This journal's config has 'encrypt' set to true, but this type of journal can't be encrypted.", + file=sys.stderr, + ) + if config["journal"].strip("/").endswith(".dayone") or "entries" in os.listdir( config["journal"] ): diff --git a/tests/bdd/features/encrypt.feature b/tests/bdd/features/encrypt.feature index 02bff32f8..af1411728 100644 --- a/tests/bdd/features/encrypt.feature +++ b/tests/bdd/features/encrypt.feature @@ -41,9 +41,16 @@ Feature: Encrypting and decrypting journals Then we should be prompted for a password And the output should contain "2013-06-10 15:40 Life is good" + + Scenario Outline: Running jrnl with encrypt: true on unencryptable journals + Given we use the config "" + When we run "jrnl --config-override encrypt true here is a new entry" + Then the error output should contain "this type of journal can't be encrypted" + Examples: configs - | config_file | - | basic_onefile.yaml | + | config_file | + | basic_folder.yaml | + | basic_dayone.yaml | Scenario Outline: Attempt to encrypt a folder or DayOne journal should result in an error