Commit graph

160 commits

Author SHA1 Message Date
Jonathan Wren
15a5b143ee Merge branch 'develop' into mode-actions-1639
Conflicts:
  jrnl/controller.py
2023-03-25 11:56:57 -07:00
Aaron Lichtman
a2b217fdfc
Add ability to use template with --template (#1667)
* Add ability to pass template path with --template

Update jrnl/args.py

* Fix tests
2023-03-25 11:47:00 -07:00
Jonathan Wren
e813ff7b3f add encrypted to tests for change-time 2023-03-04 14:38:25 -08:00
Jonathan Wren
33263f1b48 rename test file 2023-03-04 14:38:23 -08:00
Jonathan Wren
85a759ebba
add encrypted to tests 2023-03-04 14:31:19 -08:00
Jonathan Wren
e6a36a9c0a
run format 2023-03-04 14:23:28 -08:00
Jonathan Wren
9bca32b438
Merge branch 'develop' into mode-actions-1639
Conflicts:
  CHANGELOG.md
  docs/privacy-and-security.md
  jrnl/controller.py
  tests/bdd/features/change_time.feature
2023-03-04 14:07:46 -08:00
Micah Jerome Ellison
7eec231095 Track added/deleted counts in a register in the Journal class instead of attempting to infer it via controller counting 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
9f44ab22ce Remove extraneous comment in test 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
0e70a57a67 Add tests for counting combinations of action arguments (change-time, edit, delete) and for change-time counts. Some are failing and should be investigated 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
94d78f3e2d Test combinations of found/deleted messages when using --delete 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
4ad9f58213 Add tests for found count with -n equivalent argument 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
14fd024ed1 Add found/modified counts to edit tests 2023-03-04 13:58:20 -08:00
Briscoooe
a708c15eb7 Don't save templated journal entries if the received raw text is the same as the template itself (#1653) 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
2be80a5fa0 Fix other unit test that did not account for short-circuit 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
8ee1632760 Fix unit test that did not account for new short-circuit when displaying journal with no entries 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
46b7a64549 Reconcile tests with new error message when clearing editor in edit mode 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
80a4b0778f Correct entry edit modified count test 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
1873f69ded Remove unneeded exception when editor is empty and fix test that was testing incorrect message 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
752e55d363 Add currently-failing test conditions for count messages when changing time and deleting 2023-03-04 13:58:20 -08:00
Jonathan Wren
c182395fce 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
2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
bade98ef0d Fix user input mock - was not appropriately checking return value 2023-03-04 13:58:20 -08:00
Micah Jerome Ellison
427485a1d7
Add message with config location and docs location when installation is complete (#1695) 2023-03-04 12:45:37 -08:00
Micah Jerome Ellison
1a67fd5dec
Use pytest-bdd 6 (#1685)
* update pytest-bdd to 6.0
* update lock file
* fix first test (inject command fixture to request)
* fix some more tests
* fix cli_run fixture
* fix password fixture
* Remove unused import
* Fix greedy should_or_should_not parsing problems while also consolidating its parse/transformation-to-bool code
* Prevent greedy matching in "we run" by using regular expression lookahead
* Add missing "Outline" in scenario outlines with examples
* Split "we use the config" and "we use no config" so pytest won't try to consume config_file as a fixture
* Fix missing ShouldOrShouldNot
* Formatting
* fix get_fixture function
* change output of failing test to be a little more useful
* update lock file
* update type builder to for should/should not to be in it's own file, rename some vars for readability
* add parse-type new dev/testing dependency
* update lock file

---------

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2023-03-04 12:37:06 -08:00
Micah Jerome Ellison
e6804f1627
Prompt to include colors in config when first running jrnl (#1687)
* Add prompt to ask user if entries should be formatted with colors when installing jrnl
* Use magenta instead of black for default date color
* Use other default colors and alphabetize color list
* Update tests
* Delete test file
* update lock file
* fix failing test after merge conflict

---------

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2023-02-25 15:30:25 -08:00
Micah Jerome Ellison
3c87111710
Save empty journal on install instead of just creating a zero-length file (#1690)
* Add failing test for issue #1493
* Write journal upon creation instead of just creating 0-length file
* Fix test to accommodate current password mocking form
2023-02-25 12:29:43 -08:00
Briscoooe
b41a988d6f
Don't save templated journal entries if the received raw text is the same as the template itself (#1653) 2023-02-11 12:38:21 -08:00
Ciaran Concannon
7bd15d12ad
Search for entries with no tags or stars with -not -starred and -not -tagged (#1663)
* Allow for `-not -starred` to search for unstarred entries

* Add `-tagged` and `-not -tagged` functionality
2023-01-28 11:45:01 -08:00
Jonathan Wren
fff05eb646
Refactor flow for easier access to some files (avoid things like jrnl.Journal.Journal and jrnl.jrnl co-existing) (#1662)
* run format

* rename cli.py to main.py

* rename jrnl.py to controller.py

* move journal class files into journals dir

* rename start -> run in controller.py
2023-01-14 14:42:29 -08:00
Jonathan Wren
8da6029624
Update copyright notices for 2023 (#1660)
* update copyright notice for 2023

* standardize whitespace after copyright notice
2023-01-07 13:39:07 -08:00
Micah Jerome Ellison
9274ab16ed
Add basic template test (#1659)
* Add very basic test template
* Ensure that templates are copied to temporary test workspace
* Add basic template test
* Update copyright for this new file
2023-01-07 13:37:43 -08:00
Jonathan van der Steege
907566b39f
Add tag to XML file when edited DayOne entry and is searchable afterward (#1648)
* Add tag to XML file when edited DayOne entry
* Remove forbidden change
* undo edits
* Tags working for DayOne journal
* Correction doentries to prevent time-error
* Add sorting to tags
* Delete test statements
* Revert time changes
2023-01-07 12:51:07 -08:00
Jonathan van der Steege
d94325127f
Update version key in config file after version changes (#1646) 2023-01-07 11:46:12 -08:00
Jonathan Wren
fcc8d8e3fa
Rework Encryption to enable future support of other encryption methods (#1602)
- initial pass through to rework encryption into separate module
- little more cleanup
- rename function, fix some linting issues
- more cleaning
- fix password bug in encryption
- fix linting issue
- more cleanup
- move prompt into prompt.py
- more cleanup
- update the upgrade process for new encryption classes
- general cleanup
- turn into enum instead of strings
- store status code so tests don't fail
- standardize the load and store methods in journals
- get rid of old PlainJournal class
- typing cleanup
- more cleanup
- format
- fix linting issue
- Fix obscure Windows line ending issue with decode
  See https://bugs.python.org/issue40863
- fix for python 3.11
- add more typing
- don't use class variables because that's not what we want
- fix more type hints
- jrnlv1 encryption doesn't support encryption anymore (it's deprecated)
- keep logic for password attemps inside the class that uses it
- take out old line of code
- add some more logging
- update logging statements
- clean up logging statements
- run linters
- fix typo
- Fix for new test from develop branch
  There was a new test added for re-encrypting a journal. This updates the
  refactor to match the old (previously untested) behavior of jrnl.

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2022-11-19 13:39:39 -08:00
Jonathan Wren
b508ed6c9a
Add simplify plugin to linting checks (#1630)
* add simplify plugin for flakeheaven

* update lock file

* fix linting issues in current codebase
2022-11-05 15:56:46 -07:00
Micah Jerome Ellison
44e2ace833
Add double encryption test (#1626) 2022-10-30 13:06:54 -07:00
Jonathan Wren
63850a33c1
Fix bug for new --list --format options when no default journal is specified (#1621)
* rename test config

* Change journal name validation

Journal name validation used to happen before postconfig commands could
have a chance to run, so now each command is responsible for its own
error-checking of the journal name.

Added a new decorator and function that makes this error-checking easier.

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>

* fix wrapper function call to be more like original

* change arg names to show which aren't used

* add type hints

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2022-10-22 15:35:16 -07:00
outa
d7242d81a4
Don't create empty file when attempting a YAML export to a non-existing folder (#1600)
* Call `export_journal` before opening file handle
* Use correct exporter class
* Fix unit test
2022-10-08 13:48:29 -07:00
Micah Jerome Ellison
ceff398a01
Change default config to use journal key instead of journal name as key for file path (#1594) 2022-10-08 13:41:22 -07:00
Kevin
2df7acf488
Add machine readable --list output (#1592)
* Add machine readable --list output

* Refactor list_journals()

Create three new methods for each journal list format.
- JSON, YAML, STDOUT

* Added journal list export test

* Update test regex to handle windows filepaths
2022-09-24 12:46:49 -07:00
Micah Jerome Ellison
f65f07dbcb
Suppress "Entry added" message if using default journal (#1561)
* Suppress "Entry added to default journal" message if using default journal
* Replace "Entry added" BDD test steps with "we should get no error" now that the message is suppressed
* Add positive and negative tests for "Entry added" message behavior
2022-08-27 12:33:44 -07:00
Kevin
0cc771f633
Add message showing the number of search results (#1524)
* Added message showing the number of search results

Modified _search_journal() to return a bool based upon whether
any filter args were passed to the program.

Added _print_entries_found_count() which prints a message
based upon the number of entries found and prints warnings
if the user was trying to edit or delete.

* Add tests for search results msgs
2022-08-27 12:13:57 -07:00
Jonathan Wren
4eb9c9fdec
Clean up copyright notices and version screen (#1553)
* update copyright symbols to unicode

* clean up version screen/copyright notice

* small change to make commands more similar

* update imports to appease isort

* fix test

* update one more file merged since PR was open
2022-08-21 14:17:35 -07:00
Jonathan van der Steege
fb473007da
Export to file(s) when first line/title of an entry is very long (#1527) 2022-08-13 13:02:19 -07:00
outa
62f65ce3b9
Update tzlocal to v4.x and remove pytz dependency (#1528)
* Update tzlocal to v4.x and remove pytz dependency
* Avoid `unwrap_shim` method
* Remove upper bound of tzlocal version
2022-07-30 12:46:43 -07:00
Jonathan van der Steege
80bfff384e
Add linewrap option 'auto' (#1507)
* Add linewrap option 'auto'

* Specify the exception thrown

* Add BDD test

* Specify name instead of number

* Create test for linewrap auto and fancy format

* Fix linewrap auto for fancy format
2022-07-30 12:22:04 -07:00
Jonathan van der Steege
3a5316cedc
Check for duplicate keys in config file (#1511)
* Check for duplicate keys in config file
* Corrected BDD tests
* Unneeded check removed
* Make use of ruamel DuplicateKeyError exception
* Remove unneeded import and function
* slightly reword warning message
* fix merge conflicts
* update tests

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2022-07-16 14:21:21 -07:00
Jonathan Wren
0f2962a95f
Add and run isort on Python files (#1520)
* add and run isort

* udpate more import statements

* fix typo
2022-06-25 14:43:32 -07:00
Kevin
8b955ef002
Add bdd tests for jrnl installation (#1513)
* Added bdd tests for jrnl installation
2022-06-25 12:47:05 -07:00
Jonathan Wren
7dccc469b5
Implement Tox for testing (#1504)
* Get rid of `make` in favor of `poe`
This moves the tasks that were previously in Makefile, into
pyproject.toml (with all the other config)

This is also more inclusive of Windows developers since they only need
Python, and no longer have to install make separately.

* update docs
* don't make code blocks also links
* implement tox for testing
* update command to use new task runner
2022-06-18 11:54:28 -07:00