Tests for encryption

This commit is contained in:
Manuel Ebert 2013-07-22 20:08:53 +02:00
parent a84713e99a
commit c0733f36c5
5 changed files with 56 additions and 0 deletions

View 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": "@"
}

View 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"

View file

@ -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")

View file

@ -0,0 +1,3 @@
~<7E>|Ó5Ç\<«‰É
hq˛ŞFŰCZ[\óÖĎE¨LůxĽyą
e©ęowW(Žăł ŻO4š;¨<>µpŔĎÜ÷[<5B>fţD$K¤7ů 4ő•ˇ<E280A2>Cóˇ{&;duŃ˙jŢĂ ę|Z@“?WŔů·ĆGłţÝ•W ÷ÇÓŰâ,z2Í

View file

@ -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')