mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-06-28 21:46:13 +02:00
[WIP] Lots of test refactoring (#1042)
* make behave slightly less verbose for use with behave --format progress2 * standardize behave tests * move tests around to be more behavior driven * clean up txt file after tests * add more tests, add more functionality to behave for calling mock editor * move around behave tests, get rid of regression files * clean up some code around keyrings * add more placeholder test scenarios (marked with @todo) You can run just these tests with `behave --no-skipped --tags=todo` * fix "missing_directory" test This test was missing the config file it was trying to use. So, it was really a very useless, broken test that we absolutely should not have approved the PR (#963) for. * add write tests for each journal type * update version tests, add new regex match behave step * add config test outlines * add journal types to some search tests * change "basic" config reference to "simple" * update configs * add more journal types in search * fix basic folder journal reference * add flush output steps to behave, update delete flag tests * fix failing test with a flush * update more delete flag tests to include other journal types * fix file cleanup after failed test with no debug on * fix password test * fix DayOne tag sample data, move search/format tag tests, and run them on multiple jrnl types * added ability to auto-prompt for password for encrypted journals Only uses password when prompted, and doesn't get in the way of other input prompts. This allows us to run the same scenarios on both encrypted journals and other journal types. * fold encrypted scenarios into the rest of the scenarios where possible * remove apostrophe that is breaking tests on CI * add more journal type tests to import feature * standardize whitespace in behave tests, take out duplicate test * update handling of cache directories in test suite (easier syntax) * skip failing YAML exporter emoji test on Windows * added @todo tags for things that need follow-up Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
This commit is contained in:
parent
1a561a72d9
commit
99f708ca0b
48 changed files with 2382 additions and 1182 deletions
|
@ -1,149 +1,229 @@
|
|||
Feature: Delete entries from journal
|
||||
Scenario: --delete flag allows deletion of single entry
|
||||
Given we use the config "deletion.yaml"
|
||||
When we run "jrnl -n 1"
|
||||
Then the output should contain
|
||||
"""
|
||||
2019-10-29 11:13 Third entry.
|
||||
"""
|
||||
Scenario Outline: Delete flag allows deletion of single entry
|
||||
Given we use the config "<config>.yaml"
|
||||
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 --delete" and enter
|
||||
"""
|
||||
N
|
||||
N
|
||||
Y
|
||||
"""
|
||||
When we run "jrnl -n 1"
|
||||
Then the output should contain
|
||||
Then we flush the output
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
"""
|
||||
2019-10-29 11:11 Second entry.
|
||||
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.
|
||||
"""
|
||||
|
||||
Scenario: Backing out of interactive delete does not change journal
|
||||
Given we use the config "deletion.yaml"
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
| basic_encrypted |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
Scenario Outline: Backing out of interactive delete does not change journal
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete -n 1" and enter
|
||||
"""
|
||||
N
|
||||
"""
|
||||
Then the journal should have 3 entries
|
||||
And the journal should contain "[2019-10-29 11:11] First entry."
|
||||
And the journal should contain "[2019-10-29 11:11] Second entry."
|
||||
And the journal should contain "[2019-10-29 11:13] Third entry."
|
||||
Then we flush the output
|
||||
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.
|
||||
"""
|
||||
|
||||
Scenario: --delete flag with nonsense input deletes nothing (issue #932)
|
||||
Given we use the config "deletion.yaml"
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
| basic_folder |
|
||||
| basic_dayone |
|
||||
|
||||
|
||||
Scenario Outline: Delete flag with nonsense input deletes nothing (issue #932)
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete asdfasdf"
|
||||
When we run "jrnl -n 1"
|
||||
Then the output should contain
|
||||
Then we flush the output
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
"""
|
||||
2019-10-29 11:13 Third entry.
|
||||
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.
|
||||
"""
|
||||
And the journal should have 3 entries
|
||||
|
||||
Scenario: --delete flag with tag only deletes tagged entries
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
When we run "jrnl --delete @holidays" and enter
|
||||
"""
|
||||
Y
|
||||
Y
|
||||
"""
|
||||
Then the journal should have 3 entries
|
||||
Then the journal should contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should contain "[2020-05-02 12:10] Writing tests."
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
| basic_folder |
|
||||
| basic_dayone |
|
||||
|
||||
Scenario: --delete flag with multiple tags deletes all entries matching any of the tags
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
When we run "jrnl --delete @holidays @springtime" and enter
|
||||
Scenario Outline: Delete flag with tag only deletes tagged entries
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete @ipsum" and enter
|
||||
"""
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
"""
|
||||
Then the journal should contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should not contain "[2020-01-01 08:00] Happy New Year!"
|
||||
and the journal should contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should not contain "[2020-05-01 09:00] Happy May Day!"
|
||||
and the journal should not contain "[2020-05-02 12:10] Writing tests. *"
|
||||
and the journal should have 2 entries
|
||||
Then we flush the output
|
||||
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.
|
||||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
"""
|
||||
|
||||
Scenario: --delete flag with -and and tags only deletes boolean AND of tagged entries
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
When we run "jrnl --delete -and @holidays @springtime" and enter
|
||||
"""
|
||||
Y
|
||||
"""
|
||||
Then the journal should contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should contain "[2020-01-01 08:00] Happy New Year!"
|
||||
and the journal should contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should not contain "[2020-05-01 09:00] Happy May Day!"
|
||||
and the journal should contain "[2020-05-02 12:10] Writing tests. *"
|
||||
and the journal should have 4 entries
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
Scenario: --delete flag with -not does not delete entries with -not tag
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
When we run "jrnl --delete @holidays -not @springtime" and enter
|
||||
"""
|
||||
Y
|
||||
"""
|
||||
Then the journal should contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should not contain "[2020-01-01 08:00] Happy New Year!"
|
||||
and the journal should contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should contain "[2020-05-01 09:00] Happy May Day!"
|
||||
and the journal should contain "[2020-05-02 12:10] Writing tests. *"
|
||||
and the journal should have 4 entries
|
||||
|
||||
Scenario: --delete flag with -from only deletes entries since a specified date
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
When we run "jrnl --delete -from 2020-01-02" and enter
|
||||
Scenario Outline: Delete flag with multiple tags deletes all entries matching any of the tags
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete @ipsum @tagthree" and enter
|
||||
"""
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
"""
|
||||
Then the journal should contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should contain "[2020-01-01 08:00] Happy New Year!"
|
||||
and the journal should not contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should not contain "[2020-05-01 09:00] Happy May Day!"
|
||||
and the journal should not contain "[2020-05-02 12:10] Writing tests."
|
||||
and the journal should have 2 entries
|
||||
Then we flush the output
|
||||
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.
|
||||
"""
|
||||
|
||||
Scenario: --delete flag with -to only deletes entries up to specified date
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
When we run "jrnl --delete -to 2020-01-02" and enter
|
||||
"""
|
||||
Y
|
||||
Y
|
||||
"""
|
||||
Then the journal should not contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should not contain "[2020-01-01 08:00] Happy New Year!"
|
||||
and the journal should contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should contain "[2020-05-01 09:00] Happy May Day!"
|
||||
and the journal should contain "[2020-05-02 12:10] Writing tests."
|
||||
and the journal should have 3 entries
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
Scenario: --delete flag with -starred only deletes starred entries
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
Scenario Outline: Delete flag with -and deletes boolean AND of tagged entries
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete -and @tagone @tagtwo" and enter
|
||||
"""
|
||||
Y
|
||||
"""
|
||||
Then we flush the output
|
||||
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.
|
||||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
"""
|
||||
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
Scenario Outline: Delete flag with -not does not delete entries from given tag
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete @tagone -not @ipsum" and enter
|
||||
"""
|
||||
Y
|
||||
"""
|
||||
Then we flush the output
|
||||
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.
|
||||
"""
|
||||
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
Scenario Outline: Delete flag with -from search operator only deletes entries since that date
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete -from 2020-09-01" and enter
|
||||
"""
|
||||
Y
|
||||
"""
|
||||
Then we flush the output
|
||||
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.
|
||||
"""
|
||||
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
Scenario Outline: Delete flag with -to only deletes entries up to specified date
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete -to 2020-08-31" and enter
|
||||
"""
|
||||
Y
|
||||
Y
|
||||
"""
|
||||
Then we flush the output
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
"""
|
||||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
"""
|
||||
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
|
||||
Scenario Outline: Delete flag with -starred only deletes starred entries
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete -starred" and enter
|
||||
"""
|
||||
Y
|
||||
"""
|
||||
Then the journal should contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should contain "[2020-01-01 08:00] Happy New Year!"
|
||||
and the journal should contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should contain "[2020-05-01 09:00] Happy May Day!"
|
||||
and the journal should not contain "[2020-05-02 12:10] Writing tests. *"
|
||||
and the journal should have 4 entries
|
||||
Then we flush the output
|
||||
When we run "jrnl -99 --short"
|
||||
Then the output should be
|
||||
"""
|
||||
2020-08-29 11:11 Entry the first.
|
||||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
"""
|
||||
|
||||
Scenario: --delete flag with -contains only entries containing expression
|
||||
Given we use the config "deletion_filters.yaml"
|
||||
When we run "jrnl --delete -contains happy" and enter
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
Scenario Outline: Delete flag with -contains only entries containing expression
|
||||
Given we use the config "<config>.yaml"
|
||||
When we run "jrnl --delete -contains dignissim" and enter
|
||||
"""
|
||||
Y
|
||||
Y
|
||||
"""
|
||||
Then the journal should contain "[2019-10-01 08:00] It's just another day in October."
|
||||
and the journal should not contain "[2020-01-01 08:00] Happy New Year!"
|
||||
and the journal should contain "[2020-03-01 08:00] It's just another day in March."
|
||||
and the journal should not contain "[2020-05-01 09:00] Happy May Day!"
|
||||
and the journal should contain "[2020-05-02 12:10] Writing tests. *"
|
||||
and the journal should have 3 entries
|
||||
Then we flush the output
|
||||
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.
|
||||
2020-09-24 09:14 The third entry finally after weeks without writing.
|
||||
"""
|
||||
|
||||
Examples: Configs
|
||||
| config |
|
||||
| basic_onefile |
|
||||
# | basic_folder | @todo
|
||||
# | basic_dayone | @todo
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue