Add tests for counting combinations of action arguments (change-time, edit, delete) and for change-time counts. Some are failing and should be investigated

This commit is contained in:
Micah Jerome Ellison 2023-02-21 11:38:46 -08:00 committed by Jonathan Wren
parent 94d78f3e2d
commit 0e70a57a67
3 changed files with 142 additions and 21 deletions

View file

@ -0,0 +1,113 @@
# Copyright © 2012-2023 jrnl contributors
# License: https://www.gnu.org/licenses/gpl-3.0.html
Feature: Test combinations of edit, change-time, and delete
# [x] edit + change-time
# [x] edit + delete
# [x] change-time + delete
# [ ] edit + change-time + 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_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"
# 2 deleted minus 1 for the 1 added
And the error output should contain "1 entry deleted"
# Added entry counts as modified because it replaced a deleted entry
And the error output should contain "1 entry modified"
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_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 "2 entries 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_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"
# deleted = 2 deleted minus 1 added by edit = 1
# modified = 2 modified by change-time minus 1 of those deleted plus 1 of the deleted replaced by edit = 2
# added = 1 added minus 2 deleted = none
And the error output should contain "1 entry deleted"
And the error output should contain "2 entries modified"
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_dayone.yaml | @todo

View file

@ -9,6 +9,8 @@ Feature: Change entry times in journal
Then the output should contain "2020-09-24 09:14 The third entry finally" 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 When we run "jrnl -1 --change-time '2022-04-23 10:30'" and enter
Y Y
Then the error output should contain "1 entry modified"
And the error output should not contain "deleted"
When we run "jrnl -99 --short" When we run "jrnl -99 --short"
Then the output should be Then the output should be
2020-08-29 11:11 Entry the first. 2020-08-29 11:11 Entry the first.
@ -31,6 +33,8 @@ Feature: Change entry times in journal
Y Y
N N
Y Y
Then the error output should contain "3 entries found"
And the error output should contain "2 entries modified"
When we run "jrnl -99 --short" When we run "jrnl -99 --short"
Then the output should be Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series. 2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -45,6 +49,28 @@ Feature: Change entry times in journal
# | basic_dayone.yaml | @todo # | basic_dayone.yaml | @todo
Scenario Outline: Answering "N" to change-time prompt deletes no entries
Given we use the config "<config_file>"
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.
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_encrypted.yaml |
| basic_folder.yaml |
# | basic_dayone.yaml | @todo
Scenario Outline: Change time flag with nonsense input changes nothing Scenario Outline: Change time flag with nonsense input changes nothing
Given we use the config "<config_file>" Given we use the config "<config_file>"
When we run "jrnl --change-time now asdfasdf" When we run "jrnl --change-time now asdfasdf"
@ -68,6 +94,8 @@ Feature: Change entry times in journal
Given we use the config "<config_file>" Given we use the config "<config_file>"
When we run "jrnl --change-time '2022-04-23 10:30' @ipsum" and enter When we run "jrnl --change-time '2022-04-23 10:30' @ipsum" and enter
Y 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" When we run "jrnl -99 --short"
Then the output should be Then the output should be
2020-08-31 14:32 A second entry in what I hope to be a long series. 2020-08-31 14:32 A second entry in what I hope to be a long series.
@ -223,24 +251,3 @@ Feature: Change entry times in journal
| basic_dayone.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 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_dayone.yaml | @todo

View file

@ -3,6 +3,7 @@
from pytest_bdd import scenarios from pytest_bdd import scenarios
scenarios("features/action-combinations.feature")
scenarios("features/build.feature") scenarios("features/build.feature")
scenarios("features/config_file.feature") scenarios("features/config_file.feature")
scenarios("features/core.feature") scenarios("features/core.feature")