mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-06-28 05:26:13 +02:00
Fix keyring error handling (#1138)
* Capture KeyringLocked exception and allow manual password entry * Create LockedKeyring for steps * Support types in set_keyring step * Clarify LockedKeyring docs * Deal with locked exceptions elsewhere too * Create behave tests for locked keyring * Fix linting * Fix keyring step to allow no type * Handle all keyring retrieval errors * Better keyring error handling * Remove locked keyring for steps; generalize failed keyring * Finalize tests for keyring handling * Update set_keyring step * Make password of failed keyring encryption test more semantic
This commit is contained in:
parent
9f1bef7fde
commit
57de4f9ba4
3 changed files with 56 additions and 20 deletions
|
@ -24,6 +24,7 @@ Feature: Using the installed keyring
|
|||
n
|
||||
"""
|
||||
Then we should get no error
|
||||
And we should not see the message "Failed to retrieve keyring"
|
||||
|
||||
Scenario: Encrypt journal with no keyring backend and do store in keyring
|
||||
Given we use the config "simple.yaml"
|
||||
|
@ -36,25 +37,53 @@ Feature: Using the installed keyring
|
|||
y
|
||||
"""
|
||||
Then we should get no error
|
||||
And we should not see the message "Failed to retrieve keyring"
|
||||
# @todo add step to check contents of keyring
|
||||
|
||||
@todo
|
||||
Scenario: Open an encrypted journal with wrong password in keyring
|
||||
# This should ask the user for the password after the keyring fails
|
||||
|
||||
@todo
|
||||
Scenario: Open encrypted journal when keyring exists but fails
|
||||
# This should ask the user for the password after the keyring fails
|
||||
|
||||
@todo
|
||||
Scenario: Decrypt journal with password in keyring
|
||||
|
||||
@todo
|
||||
Scenario: Decrypt journal without a keyring
|
||||
|
||||
@todo
|
||||
Scenario: Encrypt journal when keyring exists but fails
|
||||
Given we use the config "simple.yaml"
|
||||
And we have a failed keyring
|
||||
When we run "jrnl --encrypt" and enter
|
||||
"""
|
||||
this password will not be saved in keyring
|
||||
this password will not be saved in keyring
|
||||
y
|
||||
"""
|
||||
Then we should see the message "Failed to retrieve keyring"
|
||||
And we should get no error
|
||||
And we should be prompted for a password
|
||||
And the config for journal "default" should have "encrypt" set to "bool:True"
|
||||
|
||||
Scenario: Decrypt journal when keyring exists but fails
|
||||
Given we use the config "encrypted.yaml"
|
||||
And we have a failed keyring
|
||||
When we run "jrnl --decrypt" and enter "bad doggie no biscuit"
|
||||
Then we should see the message "Failed to retrieve keyring"
|
||||
And we should get no error
|
||||
And we should be prompted for a password
|
||||
And we should see the message "Journal decrypted"
|
||||
And the config for journal "default" should have "encrypt" set to "bool:False"
|
||||
And the journal should have 2 entries
|
||||
|
||||
Scenario: Open encrypted journal when keyring exists but fails
|
||||
# This should ask the user for the password after the keyring fails
|
||||
Given we use the config "encrypted.yaml"
|
||||
And we have a failed keyring
|
||||
When we run "jrnl -n 1" and enter "bad doggie no biscuit"
|
||||
Then we should see the message "Failed to retrieve keyring"
|
||||
And we should get no error
|
||||
And we should be prompted for a password
|
||||
And the output should contain "2013-06-10 15:40 Life is good"
|
||||
|
||||
Scenario: Mistyping your password
|
||||
Given we use the config "simple.yaml"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue