mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-06-27 21:16:14 +02:00
Allow combinations of --change-time
, --delete
, and --edit
while correctly counting the number of entries affected (#1669)
* Remove search mode conditional that added explicit tag search behavior * Fix failing change-time test by using same method signature as base journal class * Fix user input mock - was not appropriately checking return value * Clean up controller - streamline `run` function in `controller.py` - add debug logging - fix unnecessary import of Journal class (only needed for typing) - standardize summary display across different actions * Add currently-failing test conditions for count messages when changing time and deleting * Don't show summary if no entries found and prevent extra line break when no entries found by short-circuiting display method * Track found entry count and remove incorrect modified stat logic * Track journal entry deletion consistently * Remove unneeded exception when editor is empty and fix test that was testing incorrect message * Correct entry edit modified count test * Track modification of entries with --change-time * Preserve existing behavior when editor is empty but make the message more clear * Reconcile tests with new error message when clearing editor in edit mode * Add found/modified counts to edit tests * Add tests for found count with -n equivalent argument * Test combinations of found/deleted messages when using --delete * Add tests for counting combinations of action arguments (change-time, edit, delete) and for change-time counts. Some are failing and should be investigated * Remove extraneous comment in test * Track added/deleted counts in a register in the Journal class instead of attempting to infer it via controller counting * Add encrypted to more tests * Fix merge conflict typo * Change 'write mode' -> 'append mode' in more places --------- Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
This commit is contained in:
parent
b3c6f90a35
commit
3c923ae943
18 changed files with 474 additions and 265 deletions
108
tests/bdd/features/actions.feature
Normal file
108
tests/bdd/features/actions.feature
Normal file
|
@ -0,0 +1,108 @@
|
|||
# Copyright © 2012-2023 jrnl contributors
|
||||
# License: https://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
Feature: Test combinations of edit, change-time, and delete
|
||||
|
||||
Scenario Outline: --change-time with --edit modifies selected entries
|
||||
Given we use the config "<config_file>"
|
||||
And we write nothing to the editor if opened
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' --edit" and enter
|
||||
Y
|
||||
N
|
||||
Y
|
||||
Then the error output should contain "No text received from editor. Were you trying to delete all the entries?"
|
||||
And the editor should have been called
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
2022-04-23 10:30 Entry the first.
|
||||
2022-04-23 10:30 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
Scenario Outline: --delete with --edit deletes selected entries
|
||||
Given we use the config "<config_file>"
|
||||
And we append to the editor if opened
|
||||
[2023-02-21 10:32] Here is a new entry
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --delete --edit" and enter
|
||||
Y
|
||||
N
|
||||
Y
|
||||
Then the editor should have been called
|
||||
And the error output should contain "3 entries found"
|
||||
And the error output should contain "2 entries deleted"
|
||||
And the error output should contain "1 entry added"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the error output should contain "2 entries found"
|
||||
And the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
2023-02-21 10:32 Here is a new entry
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
Scenario Outline: --change-time with --delete affects appropriate entries
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
# --change-time is asked first, then --delete
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' --delete" and enter
|
||||
N
|
||||
N
|
||||
Y
|
||||
Y
|
||||
N
|
||||
N
|
||||
Then the error output should contain "3 entries found"
|
||||
And the error output should contain "1 entry deleted"
|
||||
And the error output should contain "1 entry modified"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
2022-04-23 10:30 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
Scenario Outline: Combining --change-time and --delete and --edit affects appropriate entries
|
||||
Given we use the config "<config_file>"
|
||||
And we append to the editor if opened
|
||||
[2023-02-21 10:32] Here is a new entry
|
||||
And we use the password "test" if prompted
|
||||
# --change-time is asked first, then --delete, then --edit
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' --delete --edit" and enter
|
||||
N
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
N
|
||||
Then the error output should contain "3 entries found"
|
||||
And the error output should contain "2 entries deleted"
|
||||
And the error output should contain "1 entry modified" # only 1, because the other was deleted
|
||||
And the error output should contain "1 entry added" # by edit
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2022-04-23 10:30 The third entry finally after weeks without writing.
|
||||
2023-02-21 10:32 Here is a new entry
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
|
@ -9,6 +9,8 @@ Feature: Change entry times in journal
|
|||
Then the output should contain "2020-09-24 09:14 The third entry finally"
|
||||
When we run "jrnl -1 --change-time '2022-04-23 10:30'" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry modified"
|
||||
And the error output should not contain "deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -34,6 +36,8 @@ Feature: Change entry times in journal
|
|||
Y
|
||||
N
|
||||
Y
|
||||
Then the error output should contain "3 entries found"
|
||||
And the error output should contain "2 entries modified"
|
||||
When we run "jrnl --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
|
@ -48,10 +52,15 @@ Feature: Change entry times in journal
|
|||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with nonsense input changes nothing
|
||||
Scenario Outline: Answering "N" to change-time prompt deletes no entries
|
||||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --change-time now asdfasdf"
|
||||
Then the output should contain "No entries to modify"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl -1"
|
||||
Then the output should contain "2020-09-24 09:14 The third entry finally"
|
||||
When we run "jrnl -1 --change-time '2023-02-21 10:30'" and enter
|
||||
N
|
||||
Then the error output should not contain "modified"
|
||||
And the error output should not contain "deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -59,16 +68,40 @@ Feature: Change entry times in journal
|
|||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_dayone.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
| basic_folder.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
Scenario Outline: Change time flag with nonsense input changes nothing
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time now asdfasdf"
|
||||
Then the output should contain "No entries to modify"
|
||||
And the error output should not contain "entries modified"
|
||||
And the error output should not contain "entries deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
| basic_dayone.yaml |
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with tag only changes tagged entries
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' @ipsum" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry found"
|
||||
And the error output should contain "1 entry modified"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
|
@ -76,14 +109,16 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 Entry the first.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with multiple tags changes all entries matching any of the tags
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' @ipsum @tagthree" and enter
|
||||
Y
|
||||
Y
|
||||
|
@ -94,14 +129,16 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with -and changes boolean AND of tagged entries
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' -and @tagone @tagtwo" and enter
|
||||
Y
|
||||
When we run "jrnl -99 --short"
|
||||
|
@ -111,14 +148,16 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 Entry the first.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with -not does not change entries from given tag
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' @tagone -not @ipsum" and enter
|
||||
Y
|
||||
When we run "jrnl -99 --short"
|
||||
|
@ -128,14 +167,16 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with -from search operator only changes entries since that date
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' -from 2020-09-01" and enter
|
||||
Y
|
||||
When we run "jrnl -99 --short"
|
||||
|
@ -145,14 +186,16 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with -to only changes entries up to specified date
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' -to 2020-08-31" and enter
|
||||
Y
|
||||
Y
|
||||
|
@ -163,14 +206,16 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 A second entry in what I hope to be a long series.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with -starred only changes starred entries
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' -starred" and enter
|
||||
Y
|
||||
When we run "jrnl -99 --short"
|
||||
|
@ -180,16 +225,19 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 A second entry in what I hope to be a long series.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with -contains only changes entries containing expression
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' -contains dignissim" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry modified"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
|
@ -197,13 +245,14 @@ Feature: Change entry times in journal
|
|||
2022-04-23 10:30 Entry the first.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
|
||||
|
||||
Scenario Outline: Change time flag with no enties specified changes nothing
|
||||
Scenario Outline: Change time flag with no entries specified changes nothing
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time" and enter
|
||||
|
@ -217,30 +266,8 @@ Feature: Change entry times in journal
|
|||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_dayone.yaml |
|
||||
|
||||
|
||||
Scenario Outline: --change-time with --edit modifies selected entries
|
||||
Given we use the config "<config_file>"
|
||||
And we write nothing to the editor if opened
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --change-time '2022-04-23 10:30' --edit" and enter
|
||||
Y
|
||||
N
|
||||
Y
|
||||
Then the error output should contain "No entry to save"
|
||||
And the editor should have been called
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
2022-04-23 10:30 Entry the first.
|
||||
2022-04-23 10:30 The third entry finally after weeks without writing.
|
||||
|
||||
Examples: Configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
# | basic_dayone.yaml | @todo
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
| basic_dayone.yaml |
|
||||
|
|
|
@ -11,6 +11,8 @@ Feature: Delete entries from journal
|
|||
N
|
||||
N
|
||||
Y
|
||||
Then the error output should contain "3 entries found"
|
||||
And the error output should contain "1 entry deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -28,6 +30,7 @@ Feature: Delete entries from journal
|
|||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete -n 1" and enter
|
||||
N
|
||||
Then the error output should not contain "deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -44,7 +47,7 @@ Feature: Delete entries from journal
|
|||
Scenario Outline: Delete flag with nonsense input deletes nothing (issue #932)
|
||||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete asdfasdf"
|
||||
Then the output should contain "No entries to delete"
|
||||
Then the error output should contain "No entries to delete"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -62,6 +65,8 @@ Feature: Delete entries from journal
|
|||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete @ipsum" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry found"
|
||||
Then the error output should contain "1 entry deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
|
@ -79,6 +84,8 @@ Feature: Delete entries from journal
|
|||
When we run "jrnl --delete @ipsum @tagthree" and enter
|
||||
Y
|
||||
Y
|
||||
Then the error output should contain "2 entries found"
|
||||
And the error output should contain "2 entries deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
|
@ -94,6 +101,8 @@ Feature: Delete entries from journal
|
|||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete -and @tagone @tagtwo" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry found"
|
||||
And the error output should contain "1 entry deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
|
@ -110,6 +119,8 @@ Feature: Delete entries from journal
|
|||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete @tagone -not @ipsum" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry found"
|
||||
And the error output should contain "1 entry deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -126,6 +137,8 @@ Feature: Delete entries from journal
|
|||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete -from 2020-09-01" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry found"
|
||||
And the error output should contain "1 entry deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -143,6 +156,8 @@ Feature: Delete entries from journal
|
|||
When we run "jrnl --delete -to 2020-08-31" and enter
|
||||
Y
|
||||
Y
|
||||
Then the error output should contain "2 entries found"
|
||||
And the error output should contain "2 entries deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
|
@ -158,6 +173,7 @@ Feature: Delete entries from journal
|
|||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete -starred" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-29 11:11 Entry the first.
|
||||
|
@ -174,6 +190,8 @@ Feature: Delete entries from journal
|
|||
Given we use the config "<config_file>"
|
||||
When we run "jrnl --delete -contains dignissim" and enter
|
||||
Y
|
||||
Then the error output should contain "1 entry found"
|
||||
And the error output should contain "1 entry deleted"
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
||||
|
|
|
@ -372,3 +372,29 @@ Feature: Searching in a journal
|
|||
2013-06-17 20:38 This entry has a location.
|
||||
|
||||
2013-07-17 11:38 This entry is starred!
|
||||
|
||||
Scenario Outline: Searching the most recent entry should not show found count
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl -1"
|
||||
Then the error output should not contain "1 entry found"
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_dayone.yaml |
|
||||
|
||||
Scenario Outline: Searching for more entries than are in the journal should show found count
|
||||
Given we use the config "<config_file>"
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl -4"
|
||||
Then the error output should contain "3 entries found"
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
| basic_onefile.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
| basic_folder.yaml |
|
||||
| basic_dayone.yaml |
|
||||
|
|
|
@ -76,21 +76,21 @@ Feature: Writing new entries.
|
|||
| basic_dayone.yaml |
|
||||
| basic_folder.yaml |
|
||||
|
||||
Scenario Outline: Writing an empty entry from the editor should yield "No entry to save" message
|
||||
Scenario Outline: Clearing the editor's contents should yield "No text received" message
|
||||
Given we use the config "<config_file>"
|
||||
And we write nothing to the editor if opened
|
||||
And we use the password "test" if prompted
|
||||
When we run "jrnl --edit"
|
||||
Then the error output should contain "No entry to save, because no text was received"
|
||||
Then the error output should contain "No text received from editor. Were you trying to delete all the entries?"
|
||||
And the editor should have been called
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
| editor.yaml |
|
||||
| editor_empty_folder.yaml |
|
||||
| dayone.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
| basic_onefile.yaml |
|
||||
| config_file |
|
||||
| editor.yaml |
|
||||
| basic_onefile.yaml |
|
||||
| basic_encrypted.yaml |
|
||||
| basic_dayone.yaml |
|
||||
| basic_folder.yaml |
|
||||
|
||||
Scenario Outline: Writing an empty entry from the command line should yield "No entry to save" message
|
||||
Given we use the config "<config_file>"
|
||||
|
@ -236,7 +236,9 @@ Feature: Writing new entries.
|
|||
And we append to the editor if opened
|
||||
[2021-11-13] worked on jrnl tests
|
||||
When we run "jrnl --edit"
|
||||
Then the output should contain "1 entry added"
|
||||
Then the error output should contain "3 entries found"
|
||||
And the error output should contain "1 entry added"
|
||||
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
|
@ -254,7 +256,8 @@ Feature: Writing new entries.
|
|||
[2021-11-12] worked on jrnl tests again
|
||||
[2021-11-13] worked on jrnl tests a little bit more
|
||||
When we run "jrnl --edit"
|
||||
Then the error output should contain "3 entries added"
|
||||
Then the error output should contain "3 entries found"
|
||||
And the error output should contain "3 entries added"
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
|
@ -271,7 +274,7 @@ Feature: Writing new entries.
|
|||
[2021-11-13] I am replacing my whole journal with this entry
|
||||
When we run "jrnl --edit"
|
||||
Then the output should contain "2 entries deleted"
|
||||
Then the output should contain "3 entries modified"
|
||||
And the output should contain "1 entry modified"
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
|
@ -287,8 +290,7 @@ Feature: Writing new entries.
|
|||
And we write to the editor if opened
|
||||
[2021-11-13] I am replacing the last entry with this entry
|
||||
When we run "jrnl --edit -1"
|
||||
Then the output should contain
|
||||
1 entry modified
|
||||
Then the error output should contain "1 entry modified"
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
|
@ -304,8 +306,8 @@ Feature: Writing new entries.
|
|||
And we append to the editor if opened
|
||||
This is a small addendum to my latest entry.
|
||||
When we run "jrnl --edit"
|
||||
Then the output should contain
|
||||
1 entry modified
|
||||
Then the error output should contain "3 entries found"
|
||||
And the error output should contain "1 entry modified"
|
||||
|
||||
Examples: configs
|
||||
| config_file |
|
||||
|
@ -341,6 +343,7 @@ Feature: Writing new entries.
|
|||
And we append to the editor if opened
|
||||
@newtag
|
||||
When we run "jrnl --edit -1"
|
||||
Then the error output should contain "1 entry modified"
|
||||
When we run "jrnl --tags @newtag"
|
||||
Then the output should contain
|
||||
1 entry found
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
from pytest_bdd import scenarios
|
||||
|
||||
scenarios("features/actions.feature")
|
||||
scenarios("features/build.feature")
|
||||
scenarios("features/config_file.feature")
|
||||
scenarios("features/core.feature")
|
||||
|
|
|
@ -125,7 +125,10 @@ def we_use_the_config(request, temp_dir, working_dir, config_file):
|
|||
return config_dest
|
||||
|
||||
|
||||
@given(parse('we copy the template "{template_file}" to the default templates folder'), target_fixture="default_templates_path")
|
||||
@given(
|
||||
parse('we copy the template "{template_file}" to the default templates folder'),
|
||||
target_fixture="default_templates_path",
|
||||
)
|
||||
def we_copy_the_template(request, temp_dir, working_dir, template_file):
|
||||
# Move into temp dir as cwd
|
||||
os.chdir(temp_dir.name) # @todo move this step to a more universal place
|
||||
|
|
|
@ -197,12 +197,12 @@ def config_var_in_memory(config_in_memory, journal_name, it_should, some_yaml):
|
|||
|
||||
@then("we should be prompted for a password")
|
||||
def password_was_called(cli_run):
|
||||
assert cli_run["mocks"]["user_input"].called
|
||||
assert cli_run["mocks"]["user_input"].return_value.input.called
|
||||
|
||||
|
||||
@then("we should not be prompted for a password")
|
||||
def password_was_not_called(cli_run):
|
||||
assert not cli_run["mocks"]["user_input"].called
|
||||
assert not cli_run["mocks"]["user_input"].return_value.input.called
|
||||
|
||||
|
||||
@then(parse("the cache directory should contain the files\n{file_list}"))
|
||||
|
|
|
@ -18,15 +18,17 @@ def random_string():
|
|||
|
||||
|
||||
@pytest.mark.parametrize("export_format", ["pretty", "short"])
|
||||
@mock.patch("builtins.print")
|
||||
@mock.patch("jrnl.controller.Journal.pprint")
|
||||
def test_display_search_results_pretty_short(mock_pprint, mock_print, export_format):
|
||||
def test_display_search_results_pretty_short(export_format):
|
||||
mock_args = parse_args(["--format", export_format])
|
||||
test_journal = mock.Mock(wraps=jrnl.journals.Journal)
|
||||
|
||||
test_journal = jrnl.journals.Journal()
|
||||
test_journal.new_entry("asdf")
|
||||
|
||||
test_journal.pprint = mock.Mock()
|
||||
|
||||
_display_search_results(mock_args, test_journal)
|
||||
|
||||
mock_print.assert_called_once_with(mock_pprint.return_value)
|
||||
test_journal.pprint.assert_called_once()
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
@ -40,7 +42,9 @@ def test_display_search_results_builtin_plugins(
|
|||
test_filename = random_string
|
||||
mock_args = parse_args(["--format", export_format, "--file", test_filename])
|
||||
|
||||
test_journal = mock.Mock(wraps=jrnl.journals.Journal)
|
||||
test_journal = jrnl.journals.Journal()
|
||||
test_journal.new_entry("asdf")
|
||||
|
||||
mock_export = mock.Mock()
|
||||
mock_exporter.return_value.export = mock_export
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@ def build_card_header(datestr):
|
|||
|
||||
class TestFancy:
|
||||
def test_too_small_linewrap(self, datestr):
|
||||
|
||||
journal = "test_journal"
|
||||
content = build_card_header(datestr)
|
||||
|
||||
|
|
|
@ -101,7 +101,6 @@ def test_get_kv_from_pair():
|
|||
|
||||
class TestDotNotationToList:
|
||||
def test_unpack_dots_to_list(self):
|
||||
|
||||
keys = "a.b.c.d.e.f"
|
||||
keys_list = _convert_dots_to_list(keys)
|
||||
assert len(keys_list) == 6
|
||||
|
|
|
@ -230,7 +230,6 @@ def test_version_alone():
|
|||
|
||||
|
||||
def test_editor_override():
|
||||
|
||||
parsed_args = cli_as_dict('--config-override editor "nano"')
|
||||
assert parsed_args == expected_args(config_override=[["editor", "nano"]])
|
||||
|
||||
|
@ -294,7 +293,6 @@ class TestDeserialization:
|
|||
],
|
||||
)
|
||||
def test_deserialize_multiword_strings(self, input_str):
|
||||
|
||||
runtime_config = make_yaml_valid_dict(input_str)
|
||||
assert runtime_config.__class__ == dict
|
||||
assert input_str[0] in runtime_config
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue