Commit graph

1294 commits

Author SHA1 Message Date
MinchinWeb
80a1eeff42
Plugin list on Diagnostic (#1282)
* CLI: Unhide "diagnostic" commandline option
* Display loaded plugins under "--diagnostic" rather than "--version"
* Align plugin names on diagnostic
* Store plugin module paths as variables
* Don't display full plugin module paths for built in and "regular" contributed plugins
* Make flake8 happy
* Adjust new plugin imports
2021-10-16 13:58:24 -07:00
MinchinWeb
79c37401c4 jrnl.__version__ magic works! (#1296)
* `jrnl.__version__` magic works!

Adjust version imports
Update version on GitHub release flow
Fix version imports & black issue

* escape strings in workflow

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-17 14:58:15 -07:00
Jonathan Wren
6b1d6ccd56 Fix testing for plugins (#1277)
* Move plugins tests back into normal test workflow

* change when tests run

* make tests slightly more readable in PR
2021-07-17 14:58:15 -07:00
MinchinWeb
4a9f01abb1 Restore __main__.py functionality (#1278)
Allows you to access jrnl by running `python -m jrnl`
2021-07-17 14:58:15 -07:00
Jonathan Wren
be1da17ab9 Remove __init__.py files (#1275)
Since we're implementing a plugin system that relies on implicit
namespacing, we should remove these files so that they don't confuse and
muddle our virtual envs (like the ones we use to run tests).

Also, they're not longer needed as of Python 3.3.

PEP 420 says:
Allowing implicit namespace packages means that the requirement to
provide an __init__.py file can be dropped completely...
2021-07-17 14:58:15 -07:00
MinchinWeb
4392e29742 Use implicit namespace plugins for import and export (#1216)
* behavior outline
* FIrst pass at allow external plugins
* remove template exporter
* Add listing of active plugins to '--version' output
* Documentation for plugins
* [Docs] add custom imports and exporters to site TOC
* [Docs] better linewrapping
* enforce positive initial linewrap
  Check column widths
  update gitignore
  throw error when linewrap too small
  simply check for large enough linewrap value
* delete unused error message
* PR feedback
  make exception more informative
  update check_linewrap signature in src and test
  make check_linewrap a free function
* delete unused function
* delete else..pass block
* newline for make format
* Include dates_exporter
* Use Base classes for importer and exporters.
* [Docs] improve documentation of custom Importers and Exporters
* [Testing] separate run with external plugin!
* basic behavior test
* prototype unittest for JSON Exporter
  test for unimplemented method
* make format
  delete unused imports
* Remove 'importer' or 'exporter' from filenames where not needed
* [Test] run different tests with or without the external plugins installed
* [Test] move test rot13 plugin into git tree
  from 0dc912af82
* consolidate demo plugins to common package
* [Docs] name page for plugins
* [Docs] include the sample plug in code files directly
* style fixes
* [test] determine whether to run external plug in tests based on installed packages
* improved code documentation
* style fixes for GitHub actions
* Convert "short" and "pretty" (and "default") formaters to plugins
  further to https://github.com/jrnl-org/jrnl/pull/1177
* more code clean up
  tests pass locally...now for GitHub...
* [tests] dynamically determine jrnl version for plugin tests
* [GitHub Actions] direct install of testing plugins
* Remove template code
* [plugins] meta --> collector
* [Docs] create scripted entries using an custom importer
* (closer to) being able to run behave tests outside project root directory
* We already know when exporter to use
  Don't re-calculate it!
* [Tests] don't name test plugin 'testing"
  If so named, pip won't install it.
* [Test] run behave tests with test plugins outside project root
* [Test] behave tests pass locally
* [Docs] fix typo
* [GitHub Actions] run test commands from poetry's shell
* black-ify code
* [GitHub Actions] move downstream (rather than up) to run tests
* [GitHub Actions] set shell to poetry
* [GitHub Workflows] Manually activate virtual environment
* [GitHub Actions] Skip Windows & Python 3.8
  Can't seem to find Python exe?
* [GiotHub Actions] explicitly use virtual env
* [GitHub Actions] create virutal env directly
* [GitHub Actions] better activate of Windows virtual env
* [GitHub Actions] create virtual env on Mac
* [Github Actions] install wheel and upgrade pip
* [GitHub Actions] skip virtual environments altogether
* [GitHub Actions] change directory for behave test
* Remove Windows exclusions from CI as per note -- they should be working now

Co-authored-by: Suhas <sugas182@gmail.com>
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-17 14:58:15 -07:00
Jrnl Bot
cef3a98b4e Update changelog [ci skip] 2021-07-17 20:23:48 +00:00
Micah Jerome Ellison
31f782e333
Add documentation about saved passwords in Windows (#1301)
* Add note about saved passwords
* Add missing yq dep back in to allow xq to run in mkdocs CI pipeline
2021-07-17 13:22:01 -07:00
Jrnl Bot
3e95a46bd2 Update changelog [ci skip] 2021-07-17 19:15:00 +00:00
dependabot[bot]
52c0a0ebf3
Bump python-dateutil from 2.8.1 to 2.8.2 (#1302)
Bumps [python-dateutil](https://github.com/dateutil/dateutil) from 2.8.1 to 2.8.2.
- [Release notes](https://github.com/dateutil/dateutil/releases)
- [Changelog](https://github.com/dateutil/dateutil/blob/master/NEWS)
- [Commits](https://github.com/dateutil/dateutil/compare/2.8.1...2.8.2)

---
updated-dependencies:
- dependency-name: python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-17 12:13:19 -07:00
Jrnl Bot
b896c85bf0 Update changelog [ci skip] 2021-07-17 19:03:29 +00:00
Micah Jerome Ellison
7b72b24ee2
Add first draft of security.md (#1299) 2021-07-17 12:01:59 -07:00
Jonathan Wren
e771c9da81
Update lock file from poetry stable version (#1298) 2021-07-10 13:53:00 -07:00
Jrnl Bot
9bd395007f Update changelog [ci skip] 2021-07-10 19:14:56 +00:00
Micah Jerome Ellison
2723e1cfb5
Add Python 3.10 support (#1271)
* Add Python 3.10 support

* Change Python 3.10 to 3.10-dev in CI

* Run poetry update

* Turn off fail-fast to troubleshoot

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>

* Add continue-on-error for 3.10

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>

* use prerelease poetry for prerelease python

* fix syntax error

* rename steps to make more sense

* remove dev dependency that breaks with python 3.10

* update tests

* Change test dependencies for minimal breakage on python 3.10

- loosen the test dep requirements (so we get warned about these
  problems sooner)
- add new extras group to provide minimal deps required for testing (we
  don't need to run static analysis again on every version)

* change how we check if deps are installed so test don't run wild

* add setuptools due to poetry bug, clean up other steps

* update lock file

* test

* Revert "test"

This reverts commit 31e538300e.

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-10 12:13:15 -07:00
Jrnl Bot
56df419bea Update changelog [ci skip] 2021-07-03 22:52:14 +00:00
Micah Jerome Ellison
9e3153453e
Change all instances of FullLoader to SafeLoader (#1285) 2021-07-03 15:50:36 -07:00
Jonathan Wren
26484130c3 remove old comment 2021-07-03 15:49:18 -07:00
Jonathan Wren
495956d907 remove init file that is no longer neded 2021-07-03 15:49:18 -07:00
Jonathan Wren
d95dab9f0c add actual lib directory even though it's in gitignore for some reason 2021-07-03 15:49:18 -07:00
Jonathan Wren
f99411f2f9 move some files around because pytest is being weird 2021-07-03 15:49:18 -07:00
Jonathan Wren
cdad0d6289 Replace pyflakes with flake8 for linting 2021-07-03 15:49:18 -07:00
Jonathan Wren
c5a7d7027c Move pytest-bdd code into separate files
Now that all the tests are passing, this breaks them up into a few
different files to make everything more organized.

Note: Pyflakes is complaining about some unused import statements.
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
54e5e96ad2 Force GitHub Actions to preserve line endings
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
fd349fb0fc Implement ExitStack to handle mocks in pytest-bdd
- Fix failing DayOne test
- Make format and clean up extraneous comment

Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
0c8efd5331 Cleanup last few tests
- Misc linting issues
- Whitespace cleanup
- Entire test suite is now passing
- Add misc todo items in comments

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
5572833652 Rewrite config checking steps in pytest-bdd
- Take out old type coersion (it was causing needles complexity)
- Take out `read_value_from_string` function
- Use taml parser to parse yaml instead of using custom function
- Update tests to use new implementation

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
b7b7bad2fb Clarify and cleanup tests
- Run formatter
- Take out old tags
- Use new steps on tests

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
44b1762b7d Implement stream redirection in pytest-bdd
- Take out old steps from format and input tests

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
512fb63e1f Implement test to check editor temporary filename
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
5d4d68fe32 Implement directory changing and relative directory test
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
7647755e96 Implement journal existence check
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
ef25c50e16 Implement step for directory journals
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
4aabb73847 Implement datetime handling in pytest-bdd
- This was awful and convoluted

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
cda07bf8d9 Make steps use new config file
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
e19fab0615 Add new config file (for use in pytest-bdd)
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
e0980cf396 Update tests to use more scenario outlines
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
3d29b6b6a1 Fix star and tag feature language and add output should be empty test
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
8faa3ae32d Update tests to use new steps
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
d15e683955 Update search features to use new steps
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Jonathan Wren
3ddfb4d594 Implement editor-related steps in pytest-bdd
- Implement mock editor fixture
- Add fixture to keep track of editor state
- Implement various steps to check editor state

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
ce64d7973b Implement @skip_win and @skip_editor
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
36dc01bf30 Fixing custom template test and skipping some broken tests
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
148d3fdb18 Update test w/ new steps
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
a6a4417eff Fix annoying poetry-generated Windows line endings
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
849ed16d67 Install pytest-icdiff and run poetry lock
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
11e0e84dcf Fix test failing from lack of whitespace
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
430182a0a5 Implement JSON tests and remove "node" nomenclature from tests
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
48c9d9fa16 Implement tag tests in JSON
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00
Micah Jerome Ellison
3cc3e387c5 Combine JSON and XML parsing tests
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
2021-07-03 15:49:18 -07:00