Plugin, library, and reports for reading Conservancy's books
Find a file
Brett Smith 552ef45f47 plugin: Be more selective about when ! skips validation.
It makes sense to let the bookkeeper skip validations in situations
where the metadata requires information that might not be available
when entered. It does not make sense to skip validations that *must*
be available and affect the structure of the books, like project and
entity.

This commit ensures every plugin hook has a test for flagged
transactions, even for hooks that currently have the desired
behavior where no code changes were required for the test to
pass.
2020-05-21 21:58:48 -04:00
conservancy_beancount plugin: Be more selective about when ! skips validation. 2020-05-21 21:58:48 -04:00
tests plugin: Be more selective about when ! skips validation. 2020-05-21 21:58:48 -04:00
.gitignore tox: Start configuration to test on Py3.6 and Py3.7. 2020-04-06 15:25:14 -04:00
LICENSE.txt Initial commit: license, setup.py, gitignore, skeleton structure. 2020-03-05 09:33:23 -05:00
pytest.ini tests: Ignore the DeprecationWarning from the socks module. 2020-03-24 09:16:38 -04:00
README.rst tox: Start configuration to test on Py3.6 and Py3.7. 2020-04-06 15:25:14 -04:00
setup.cfg setup: Don't disallow untyped calls. 2020-04-27 16:53:22 -04:00
setup.py accrual: Outgoing report doesn't put RT web links in < >. 2020-05-18 17:05:01 -04:00
tox.ini tox: Start configuration to test on Py3.6 and Py3.7. 2020-04-06 15:25:14 -04:00

Beancount plugin and tools for Conservancy's books
==================================================

Installation
------------

``cd`` to this directory with your checkout and then run::

  python3 -m pip install --user --upgrade .

Of course, if you're familiar with Python development tools, you're welcome to install the module in a virtualenv, somewhere else, etc.

Running all tests
-----------------

The project comes with a Tox configuration that defines all the tests we expect to pass, across all the different environments we support. To run them all, run::

  tox

The next sections describe how to run them standalone in your own development environment, for faster iteration or simpler isolation of problems.

Running unit tests
------------------

Run::

  ./setup.py test

Type checking
-------------

Most of the code is typed, except for very dynamic loader methods. To run the type checker::

  ./setup.py typecheck

This is expected to pass just like the unit tests.

Legal
-----

Copyright © 2020  Brett Smith. Licensed under the `GNU Affero General Public License <https://www.gnu.org/licenses/agpl-3.0.html>`_, either version 3 of the License, or (at your option) any later version.