Rework how all output and messaging works in jrnl (#1475)

* fix missed statement from last PR
* replace print statement for adding an entry to a journal
* clean up linting and format
* change print statement over to new print_msg function
* make print_msg always print to stderr
* change print statement over to new print_msg function
* update importer to use new message function
* update yaml format to use new message function
* code cleanup
* update yaml format to use new message function
* update yaml format to use new exception handling
* update Journal class to use new message function
* update install module to use new message function
* update config module to use new message function
* update upgrade module to properly use new message and exception handling
* fix typo
* update upgrade module to use new message handling
* update welcome message to use new handling
* update upgrade module to use new message handling
* update upgrade module journal summaries to use new message handling
* take out old code
* update upgrade module to use new message handling
* update upgrade module to use new message handling
* update more modules to use new message handling
* take out old comment
* update deprecated_cmd to use new message handling
* update text_exporter with new message handling, get rid of old color constants
* get rid of hardcoded text
* whitespace changes
* rework MsgType into MsgStyle so messages can have different styles
* add comment
* Move around code to separate concerns of each function a bit more
* update create_password and yesno prompt functions for new messaging
* fix missing newline for keyboard interrupts
* fix misc linting
* fix bug with panel titles always showing 'error' after one error
* fix missing import
* update debug output after uncaught exception
* update exception for new exception handling
* rewrite yesno function to use new centralized messages
* reduce the debug output slightly
* clean up print_msgs function
* clean up create_password function
* clean up misc linting
* rename screen_input to hide_input to be more clear
* update encrypted journal prompt to use new messaging functionality
* fix typo in message key
* move rich console into function so we can mock properly
* update password mock to use rich console instead of getpass
* add more helpful output to then step
* fix test by updating expected output
* update message to use new functionality
* rework mocks in test suite for new messaging functionality
* fix linting issue
* fix more tests
* fix more tests
* fix more tests
* fix more tests
* fix merge bug
* update prompt_action_entries to use new messaging functionality
* Add new input_method "type"
  This does the same thing as input_method "pipe" but is more clear what
  it's doing (typing text into the builtin composer)
* get rid of old commented code
* get rid of unused code
* move some files around

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
This commit is contained in:
Jonathan Wren 2022-06-11 13:32:11 -07:00 committed by GitHub
parent 4d683a13c0
commit f53110c69b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 912 additions and 470 deletions

View file

@ -73,7 +73,7 @@ Feature: Multiple journals
these three eyes
these three eyes
n
Then the output should contain "Encrypted journal 'new_encrypted' created"
Then the output should contain "Journal 'new_encrypted' created at "
Scenario: Don't overwrite main config when encrypting a journal in an alternate config
Given the config "basic_onefile.yaml" exists

View file

@ -69,7 +69,7 @@ Feature: Reading and writing to journal with custom date formats
Scenario: Writing an entry at the prompt with custom date
Given we use the config "little_endian_dates.yaml"
When we run "jrnl" and enter "2013-05-10: I saw Elvis. He's alive."
When we run "jrnl" and type "2013-05-10: I saw Elvis. He's alive."
Then we should get no error
When we run "jrnl -999"
Then the output should contain "10.05.2013 09:00 I saw Elvis."

View file

@ -2,8 +2,8 @@ Feature: Encrypting and decrypting journals
Scenario: Decrypting a journal
Given we use the config "encrypted.yaml"
# And we use the password "bad doggie no biscuit" if prompted
When we run "jrnl --decrypt" and enter "bad doggie no biscuit"
And we use the password "bad doggie no biscuit" if prompted
When we run "jrnl --decrypt"
Then the output should contain "Journal decrypted"
And the config for journal "default" should contain "encrypt: false"
When we run "jrnl -99 --short"
@ -47,7 +47,7 @@ Feature: Encrypting and decrypting journals
Scenario Outline: Running jrnl with encrypt: true on unencryptable journals
Given we use the config "<config_file>"
When we run "jrnl --config-override encrypt true here is a new entry"
Then the error output should contain "this type of journal can't be encrypted"
Then the error output should contain "journal can't be encrypted"
Examples: configs
| config_file |

View file

@ -429,7 +429,7 @@ Feature: Custom formats
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --export yaml --file nonexistent_dir"
Then the output should contain "YAML export must be to individual files"
Then the output should contain "YAML export must be to a directory"
And the output should not contain "Traceback"
Examples: configs

View file

@ -87,7 +87,7 @@ Feature: Multiple journals
these three eyes
these three eyes
n
Then the output should contain "Encrypted journal 'new_encrypted' created"
Then the output should contain "Journal 'new_encrypted' created at"
Scenario: Read and write to journal with emoji name
Given we use the config "multiple.yaml"

View file

@ -3,7 +3,7 @@ Feature: Implementing Runtime Overrides for Select Configuration Keys
Scenario: Override configured editor with built-in input === editor:''
Given we use the config "basic_encrypted.yaml"
And we use the password "test" if prompted
When we run "jrnl --config-override editor ''" and enter
When we run "jrnl --config-override editor ''" and type
This is a journal entry
Then the stdin prompt should have been called
And the editor should not have been called

View file

@ -29,7 +29,8 @@ Feature: Starring entries
Scenario: Starring an entry will mark it in an encrypted journal
Given we use the config "encrypted.yaml"
When we run "jrnl 20 july 2013 *: Best day of my life!" and enter "bad doggie no biscuit"
And we use the password "bad doggie no biscuit" if prompted
When we run "jrnl 20 july 2013 *: Best day of my life!"
Then the output should contain "Entry added"
When we run "jrnl -on 2013-07-20 -starred" and enter "bad doggie no biscuit"
Then the output should contain "2013-07-20 09:00 Best day of my life!"

View file

@ -41,7 +41,7 @@ Feature: Upgrading Journals from 1.x.x to 2.x.x
Scenario: Upgrade with missing journal
Given we use the config "upgrade_from_195_with_missing_journal.json"
When we run "jrnl --list" and enter "Y"
Then the output should contain "Error: features/journals/missing.journal does not exist."
Then the output should contain "features/journals/missing.journal does not exist"
And we should get no error
Scenario: Upgrade with missing encrypted journal
@ -49,6 +49,6 @@ Feature: Upgrading Journals from 1.x.x to 2.x.x
When we run "jrnl --list" and enter
Y
bad doggie no biscuit
Then the output should contain "Error: features/journals/missing.journal does not exist."
Then the output should contain "features/journals/missing.journal does not exist"
And the output should contain "We're all done"
And we should get no error

View file

@ -172,7 +172,7 @@ Feature: Writing new entries.
Scenario Outline: Writing an entry at the prompt (no editor) should store the entry
Given we use the config "<config_file>"
And we use the password "bad doggie no biscuit" if prompted
When we run "jrnl" and enter "25 jul 2013: I saw Elvis. He's alive."
When we run "jrnl" and type "25 jul 2013: I saw Elvis. He's alive."
Then we should get no error
When we run "jrnl -on '2013-07-25'"
Then the output should contain "2013-07-25 09:00 I saw Elvis."
@ -233,8 +233,7 @@ 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 output should contain "1 entry added"
Examples: configs
| config_file |
@ -252,8 +251,7 @@ 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 output should contain
[3 entries added]
Then the error output should contain "3 entries added"
Examples: configs
| config_file |
@ -269,8 +267,8 @@ Feature: Writing new entries.
And we write to the editor if opened
[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, 1 entry modified]
Then the output should contain "2 entries deleted"
Then the output should contain "3 entries modified"
Examples: configs
| config_file |
@ -287,7 +285,7 @@ Feature: Writing new entries.
[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]
1 entry modified
Examples: configs
| config_file |
@ -304,7 +302,7 @@ Feature: Writing new entries.
This is a small addendum to my latest entry.
When we run "jrnl --edit"
Then the output should contain
[1 entry modified]
1 entry modified
Examples: configs
| config_file |