A pytest plugin for testing Jupyter libraries and extensions.
Project description
pytest-jupyter
A set of pytest plugins for Jupyter libraries and extensions.
Basic Usage
First, install pytest-jupyter
from PyPI using pip:
pip install pytest-jupyter
This installs the basic pytest-jupyter package that includes fixture definitions for the various Jupyter-based pytest plugins.
To use one of these plugins, you'll also need to install their dependencies. This requires a second pip install
call. For example, if you'd like to use the jupyter_server
plugin, you'll need to call:
pip install "pytest-jupyter[server]"
This should install everything you need for the plugin to work.
To use a plugin, add it to the pytest_plugins
list in the conftest.py
of your project's root test directory.
# inside the conftest.py
pytest_plugins = ["pytest_jupyter.jupyter_server"]
This library includes an echo_kernel
, which is useful to speed up testing.
You must have either "pytest-jupyter[server]"
or "pytest-jupyter[client]"
installed to use the echo kernel.
The pytest_jupyter.jupyter_client
plugin provides an installed
echo_kernel_spec
as a fixture, and a start_kernel
fixture
that provides a factory function that starts a kernel using the echo
kernel
by default.
Note: The server plugin also includes the client plugin, so you can use both
sets of fixtures with "pytest_jupyter.jupyter_server"
. Both the client
and server
plugins also include the core fixtures.
The server fixures use the echo kernel by default. To override this behavior,
override the jp_server_config
fixture and add the following config:
{
"MultiKernelManager": {
"default_kernel_name": "<desired_kernel_name"
}
}
All fixtures inside the plugin (e.g. jupyter_server) will be available to all of your project's unit tests. You can use a fixtures by passing it as an argument to your unit test function:
async def test_jupyter_server_api(jp_fetch):
# Send request to a temporary Jupyter Server Web Application
response = await jp_fetch("api/spec.yml")
# Confirm that the request is successful.
assert response.code == 200
You can list the fixtures for a given plugin using the --fixtures
argument from the pytest command line interface:
pytest --fixtures -p pytest_jupyter.jupyter_server
or by calling the pytest --fixtures
where the plugin is listed in the pytest_plugins
variable of a given test directory.
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_jupyter-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f563c3e01fbc083ad8f4b19982a1fd1584175642a26a0ce291a120a31e4b7660 |
|
MD5 | bccd800c408bd37d33d5964c1b5cb0be |
|
BLAKE2b-256 | abab47a80be15f081fc143f209ae07c663ccf8ad80cee9fd4902d61462e33e38 |