mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
Tests for encryption
This commit is contained in:
parent
a84713e99a
commit
c0733f36c5
5 changed files with 56 additions and 0 deletions
14
features/configs/encrypted.json
Normal file
14
features/configs/encrypted.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"default_hour": 9,
|
||||
"timeformat": "%Y-%m-%d %H:%M",
|
||||
"linewrap": 80,
|
||||
"encrypt": true,
|
||||
"editor": "",
|
||||
"default_minute": 0,
|
||||
"highlight": true,
|
||||
"password": "",
|
||||
"journals": {
|
||||
"default": "features/journals/encrypted.journal"
|
||||
},
|
||||
"tagsymbols": "@"
|
||||
}
|
24
features/encryption.feature
Normal file
24
features/encryption.feature
Normal file
|
@ -0,0 +1,24 @@
|
|||
Feature: Multiple journals
|
||||
|
||||
Scenario: Loading an encrypted journal
|
||||
Given we use the config "encrypted.json"
|
||||
When we run "jrnl -n 1" and enter "bad doggie no biscuit"
|
||||
Then we should see the message "Password"
|
||||
and the output should contain "2013-06-10 15:40 Life is good"
|
||||
|
||||
Scenario: Decrypting a journal
|
||||
Given we use the config "encrypted.json"
|
||||
When we run "jrnl --decrypt" and enter "bad doggie no biscuit"
|
||||
Then we should see the message "Journal decrypted"
|
||||
and the journal should have 2 entries
|
||||
and the config should have "encrypt" set to "bool:False"
|
||||
|
||||
Scenario: Encrypting a journal
|
||||
Given we use the config "basic.json"
|
||||
When we run "jrnl --encrypt" and enter "swordfish"
|
||||
Then we should see the message "Journal encrypted"
|
||||
and the config should have "encrypt" set to "bool:True"
|
||||
When we run "jrnl -n 1" and enter "swordish"
|
||||
Then we should see the message "Password"
|
||||
and the output should contain "2013-06-10 15:40 Life is good"
|
||||
|
|
@ -11,6 +11,7 @@ def before_scenario(context, scenario):
|
|||
"""Before each scenario, backup all config and journal test data."""
|
||||
context.messages = StringIO()
|
||||
jrnl.util.STDERR = context.messages
|
||||
jrnl.util.TEST = True
|
||||
for folder in ("configs", "journals"):
|
||||
original = os.path.join("features", folder)
|
||||
backup = os.path.join("features", folder+"_backup")
|
||||
|
|
3
features/journals/encrypted.journal
Normal file
3
features/journals/encrypted.journal
Normal file
|
@ -0,0 +1,3 @@
|
|||
~<7E>|Ó5‘Ç\<«‰É
|
||||
hq˛ŞFŰC’Z[\óÖĎE¨LůxĽyą
|
||||
e©ęowW(ŽăłŻO4š;¨<>µpŔĎÜ÷[<5B>fţD$K¤7ů4ő•ˇ<E280A2>C›óˇ{&;duŃ˙jŢĂ ę|Z@“?WŔů·ĆGłţÝ•W ÷ÇÓŰâ,z2Í
|
|
@ -79,6 +79,20 @@ def journal_doesnt_exist(context, journal_name="default"):
|
|||
journal_path = config['journals'][journal_name]
|
||||
assert not os.path.exists(journal_path)
|
||||
|
||||
@then('the config should have "{key}" set to "{value}"')
|
||||
def config_var(context, key, value):
|
||||
t, value = value.split(":")
|
||||
value = {
|
||||
"bool": lambda v: v.lower() == "true",
|
||||
"int": int,
|
||||
"str": str
|
||||
}[t](value)
|
||||
with open(jrnl.CONFIG_PATH) as config_file:
|
||||
config = json.load(config_file)
|
||||
assert key in config
|
||||
print key, config[key], type(config[key]), value, type(value)
|
||||
assert config[key] == value
|
||||
|
||||
@then('the journal should have {number:d} entries')
|
||||
@then('the journal should have {number:d} entry')
|
||||
@then('journal "{journal_name}" should have {number:d} entries')
|
||||
|
|
Loading…
Add table
Reference in a new issue