Changeset - bff3eec952f2
[Not reviewed]
0 2 1
Brett Smith - 4 years ago 2020-04-06 19:25:14
brettcsmith@brettcsmith.org
tox: Start configuration to test on Py3.6 and Py3.7.

This caught several of the recent issues.
3 files changed with 23 insertions and 2 deletions:
0 comments (0 inline, 0 general)
.gitignore
Show inline comments
 
build/
 
.cache/
 
*.egg
 
*.egg-info/
 
.eggs
 
.mypy_cache/
 
.tox/
 
__pycache__/
README.rst
Show inline comments
 
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 tests
 
-------------
 
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.
tox.ini
Show inline comments
 
new file 100644
 
[tox]
 
envlist = py36,py37
 

	
 
[testenv]
 
# Beancount includes type declarations but not the `py.typed` flag file mypy
 
# is looking for to know that. Create it ourselves.
 
commands_pre = python -c 'import beancount, pathlib; pathlib.Path(beancount.__file__).with_name("py.typed").touch()'
 

	
 
commands =
 
  ./setup.py test
 
  ./setup.py typecheck
0 comments (0 inline, 0 general)