mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
* Pretty print journal entry titles and dates. Changes appearance of all jrnl viewing commands, such as $ jrnl --short and $ jrnl -n {NUM}. Fix #508 * Removed extra newline at end of title * Use ansiwrap to properly wrap strings with ANSI escapes * Add ansiwrap to pyproject.toml * Allow configuration of colors - Replaced raw escapes with colorama - Added colors key to config - Add checks for validity of color values * Add color configuration documentation * Fix broken tests due to config change * Add tests for colors in configs - Identifying invalid color configs - Upgrading config from no colors -> colors * Add colorama dependency for all platforms * Allow users to disable colorization of output * Update poetry.lock * Add tag and body color customization options * Fix colorization of tags in title and body * Updated tests to use no color by default * Change pass to continue in verify_config() * Better style in Entry.py * Reduce code duplication for tag highlighting - Breaks "unreadable date" regression test for unknown reason * Properly colorize tags and print body * Reformatting and clean up * Replace list comprehension with generator * Handle invalid colors by not using a color * Process ANSI escapes properly with behave * Fixed the 'spaces after tags directly next to punctuation' bug Broke processing of tags next to any punctuation at all * Closer to working tag colorization but not perfect * Add tests printing for multiline journals Fix #717 * Correctly indent first line of multiline entry * Add test for multiline entries with tags * Remove redundant UNICODE flag * Progress towards proper tag colorization and body formatting * Fix newline colorization bug Debug code left intact since there are more bugs to fix :/ * And now the space just ends up before the tag instead of after it * Fix assertion syntax warning * Moved tag test to tagging.feature file * Strip out debug code and clean up * Bold datetimes in title * Bold all titles Fix #720 * Remove PY2 and PY3 constants * Fix regression in features/steps/core.py * Fix tag_regex * Remove redundant re.UNICODE flag * Remove extraneous code
95 lines
3.5 KiB
Gherkin
95 lines
3.5 KiB
Gherkin
Feature: Basic reading and writing to a journal
|
|
|
|
Scenario: Loading a sample journal
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl -n 2"
|
|
Then we should get no error
|
|
and the output should be
|
|
"""
|
|
2013-06-09 15:39 My first entry.
|
|
| Everything is alright
|
|
|
|
2013-06-10 15:40 Life is good.
|
|
| But I'm better.
|
|
"""
|
|
|
|
Scenario: Printing a journal that has multiline entries
|
|
Given we use the config "multiline.yaml"
|
|
When we run "jrnl -n 1"
|
|
Then we should get no error
|
|
and the output should be
|
|
"""
|
|
2013-06-09 15:39 Multiple line entry.
|
|
| This is the first line.
|
|
| This line doesn't have any ending punctuation
|
|
|
|
|
| There is a blank line above this.
|
|
"""
|
|
|
|
Scenario: Writing an entry from command line
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl 23 july 2013: A cold and stormy day. I ate crisps on the sofa."
|
|
Then we should see the message "Entry added"
|
|
When we run "jrnl -n 1"
|
|
Then the output should contain "2013-07-23 09:00 A cold and stormy day."
|
|
|
|
@skip_win
|
|
Scenario: Writing an empty entry from the editor
|
|
Given we use the config "editor.yaml"
|
|
When we open the editor and enter ""
|
|
Then we should see the message "[Nothing saved to file]"
|
|
|
|
Scenario: Writing an empty entry from the command line
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl" and enter ""
|
|
Then the output should be
|
|
"""
|
|
|
|
"""
|
|
|
|
Scenario: Filtering for dates
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl -on 2013-06-10 --short"
|
|
Then the output should be "2013-06-10 15:40 Life is good."
|
|
When we run "jrnl -on 'june 6 2013' --short"
|
|
Then the output should be "2013-06-10 15:40 Life is good."
|
|
|
|
Scenario: Emoji support
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl 23 july 2013: 🌞 sunny day. Saw an 🐘"
|
|
Then we should see the message "Entry added"
|
|
When we run "jrnl -n 1"
|
|
Then the output should contain "🌞"
|
|
and the output should contain "🐘"
|
|
|
|
Scenario: Writing an entry at the prompt
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl" and enter "25 jul 2013: I saw Elvis. He's alive."
|
|
Then we should get no error
|
|
and the journal should contain "[2013-07-25 09:00] I saw Elvis."
|
|
and the journal should contain "He's alive."
|
|
|
|
Scenario: Displaying the version number
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl -v"
|
|
Then we should get no error
|
|
Then the output should contain "version"
|
|
|
|
Scenario: --short displays the short version of entries (only the title)
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl -on 2013-06-10 --short"
|
|
Then the output should be "2013-06-10 15:40 Life is good."
|
|
|
|
Scenario: -s displays the short version of entries (only the title)
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl -on 2013-06-10 -s"
|
|
Then the output should be "2013-06-10 15:40 Life is good."
|
|
|
|
Scenario: Invalid color configuration
|
|
Given we use the config "invalid_color.yaml"
|
|
When we run "jrnl -on 2013-06-10 -s"
|
|
Then the output should be
|
|
"""
|
|
2013-06-10 15:40 Life is good.
|
|
"""
|
|
And we should get no error
|