A pytest plugin for testing Jupyter Notebooks
Project description
pytest-notebook
A pytest plugin for regression testing and regenerating Jupyter Notebooks.
Features
-
Recognise, collect, execute (optionally output) then diff input vs. output Jupyter Notebooks.
-
Provides clear and colorized diffs of the notebooks (using nbdime)
-
A well defined API allows notebook regression tests to be run:
- Using the pytest test collection architecture.
- As a pytest fixtures (
nb_regression.check(filename)
). - Using the
pytest_notebook
python package.
-
All stages are highly configurable via:
- The pytest command-line interface.
- The pytest configuration file.
- The notebook and cell level metadata.
-
Post-processor plugin entry-points, allow for customisable modifications of the notebook, including source code formatting with black
Installation
>> pip install pytest-notebook
To install the development version:
>> git clone https://github.com/chrisjsewell/pytest-notebook .
>> cd pytest-notebook
>> pip install -e .
>> # pip install -e .[code_style,testing,docs] # install extras for more features
Usage
See the documentation at: http://pytest-notebook.readthedocs.io/
Contributing
Contributions are very welcome.
The following will discover and run all unit test:
>> pip install -e .[testing]
>> pytest -v
Coding Style Requirements
The code style is tested using flake8,
with the configuration set in .flake8
,
and code should be formatted with black.
Installing with pytest-notebook[code_style]
makes the pre-commit
package available, which will ensure these tests are passed by reformatting the code
and testing for lint errors before submitting a commit.
It can be setup by:
>> cd pytest-notebook
>> pre-commit install
Optionally you can run black
and flake8
separately:
>> black .
>> flake8 .
Editors like VS Code also have automatic code reformat utilities, which can adhere to this standard.
License
Distributed under the terms of the BSD-3 license,
pytest-notebook
is free and open source software.
Issues
If you encounter any problems, please file an issue along with a detailed description.
Acknowledgements
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_notebook-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26e93446ecd366513d4e8cce5dedce7e09d8e59ae864bddd2d71a7bd2b8a5ed1 |
|
MD5 | ad404c20b40db0de5c40b0678a510cbf |
|
BLAKE2b-256 | afe67697d21e0360ed0f186f1d8adfc6d9ffcc6699ab20b20a6da9ea5149fb96 |