mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-11 00:58: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."""
|
"""Before each scenario, backup all config and journal test data."""
|
||||||
context.messages = StringIO()
|
context.messages = StringIO()
|
||||||
jrnl.util.STDERR = context.messages
|
jrnl.util.STDERR = context.messages
|
||||||
|
jrnl.util.TEST = True
|
||||||
for folder in ("configs", "journals"):
|
for folder in ("configs", "journals"):
|
||||||
original = os.path.join("features", folder)
|
original = os.path.join("features", folder)
|
||||||
backup = os.path.join("features", folder+"_backup")
|
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]
|
journal_path = config['journals'][journal_name]
|
||||||
assert not os.path.exists(journal_path)
|
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} entries')
|
||||||
@then('the journal should have {number:d} entry')
|
@then('the journal should have {number:d} entry')
|
||||||
@then('journal "{journal_name}" should have {number:d} entries')
|
@then('journal "{journal_name}" should have {number:d} entries')
|
||||||
|
|
Loading…
Add table
Reference in a new issue