mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-18 12:08:31 +02:00
Raise exception when trying to commit folder-based journal (including DayOne)
This commit is contained in:
parent
b23c831da5
commit
abab1852fd
5 changed files with 26 additions and 0 deletions
|
@ -32,6 +32,7 @@ class DayOne(Journal.Journal):
|
|||
def __init__(self, **kwargs):
|
||||
self.entries = []
|
||||
self._deleted_entries = []
|
||||
self.cannot_be_encrypted = True
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def open(self):
|
||||
|
|
|
@ -25,6 +25,7 @@ class Folder(Journal.Journal):
|
|||
def __init__(self, **kwargs):
|
||||
self.entries = []
|
||||
self._diff_entry_dates = []
|
||||
self.cannot_be_encrypted = True
|
||||
super(Folder, self).__init__(**kwargs)
|
||||
|
||||
def open(self):
|
||||
|
|
|
@ -13,6 +13,7 @@ avoid any possible overhead for these standalone commands.
|
|||
"""
|
||||
import platform
|
||||
import sys
|
||||
from .exception import JrnlError
|
||||
|
||||
|
||||
def preconfig_diagnostic(_):
|
||||
|
@ -68,6 +69,13 @@ def postconfig_encrypt(args, config, original_config, **kwargs):
|
|||
# Open the journal
|
||||
journal = open_journal(args.journal_name, config)
|
||||
|
||||
if hasattr(journal, "cannot_be_encrypted") and journal.cannot_be_encrypted:
|
||||
raise JrnlError(
|
||||
"CannotEncryptJournalType",
|
||||
journal_name=args.journal_name,
|
||||
journal_type=journal.__class__.__name__,
|
||||
)
|
||||
|
||||
journal.config["encrypt"] = True
|
||||
|
||||
new_journal = EncryptedJournal.from_journal(journal)
|
||||
|
|
|
@ -38,6 +38,13 @@ class JrnlError(Exception):
|
|||
by at least {columns} in the configuration file or by using
|
||||
--config-override at the command line
|
||||
""",
|
||||
"CannotEncryptJournalType": """
|
||||
The journal {journal_name} can't be encrypted because it is a
|
||||
{journal_type} journal.
|
||||
|
||||
To encrypt it, create a new journal referencing a file, export
|
||||
this journal to the new journal, then encrypt the new journal.
|
||||
""",
|
||||
}
|
||||
|
||||
msg = error_messages[self.error_type].format(**kwargs)
|
||||
|
|
|
@ -40,3 +40,12 @@ 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: Attempt to encrypt a folder or DayOne journal should result in an error
|
||||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --encrypt"
|
||||
Then the error output should contain "can't be encrypted"
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
| empty_folder.yaml |
|
||||
| dayone.yaml |
|
||||
|
|
Loading…
Add table
Reference in a new issue