Don't save templated journal entries if the received raw text is the same as the template itself (#1653)

This commit is contained in:
Briscoooe 2023-02-11 20:38:21 +00:00 committed by GitHub
parent 6c6937c507
commit b41a988d6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 1 deletions

View file

@ -150,6 +150,9 @@ def write_mode(args: "Namespace", config: dict, journal: Journal, **kwargs) -> N
if not raw or raw.isspace(): if not raw or raw.isspace():
logging.error("Write mode: couldn't get raw text or entry was empty") logging.error("Write mode: couldn't get raw text or entry was empty")
raise JrnlException(Message(MsgText.NoTextReceived, MsgStyle.NORMAL)) raise JrnlException(Message(MsgText.NoTextReceived, MsgStyle.NORMAL))
if config["template"] and raw == _get_editor_template(config):
logging.error("Write mode: raw text was the same as the template")
raise JrnlException(Message(MsgText.NoChangesToTemplate, MsgStyle.NORMAL))
logging.debug( logging.debug(
'Write mode: appending raw text to journal "%s": %s', args.journal_name, raw 'Write mode: appending raw text to journal "%s": %s', args.journal_name, raw

View file

@ -156,7 +156,9 @@ class MsgText(Enum):
NoTextReceived = """ NoTextReceived = """
No entry to save, because no text was received No entry to save, because no text was received
""" """
NoChangesToTemplate = """
No entry to save, because the template was not changed
"""
# --- Upgrade --- # # --- Upgrade --- #
JournalFailedUpgrade = """ JournalFailedUpgrade = """
The following journal{s} failed to upgrade: The following journal{s} failed to upgrade:

View file

@ -6,9 +6,12 @@ Feature: Using templates
Scenario Outline: Template contents should be used in new entry Scenario Outline: Template contents should be used in new entry
Given we use the config "<config_file>" Given we use the config "<config_file>"
And we use the password "test" if prompted And we use the password "test" if prompted
And we append to the editor if opened
This is an addition to a templated entry
When we run "jrnl --config-override template features/templates/basic.template" When we run "jrnl --config-override template features/templates/basic.template"
And we run "jrnl -1" And we run "jrnl -1"
Then the output should contain "This text is in the basic template" Then the output should contain "This text is in the basic template"
Then the output should contain "This is an addition to a templated entry"
Examples: configs Examples: configs
| config_file | | config_file |
@ -17,3 +20,15 @@ Feature: Using templates
| basic_folder.yaml | | basic_folder.yaml |
| basic_dayone.yaml | | basic_dayone.yaml |
Scenario Outline: Templated entry should not be saved if template is unchanged
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --config-override template features/templates/basic.template"
Then the output should contain "No entry to save, because the template was not changed"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |