pytest_notebook.ipy_magic module¶
Module to provide an IPython magic for running pytest.
Load via: %load_ext pytest_notebook.ipy_magic,
then %pytest and %%pytest can be accessed.
-
pytest_notebook.ipy_magic.eval_literals(literals: List[str], local_ns: Optional[dict]) → List[Tuple[str, str]][source]¶ Evaluate and yield literal items.
-
pytest_notebook.ipy_magic.load_ipython_extension(ipython)[source]¶ Load the ipython magic, when the module is called via
%load_ext.
-
pytest_notebook.ipy_magic.parse_cell_content(cell: Optional[str]) → Tuple[List[str], List[str], List[str]][source]¶ Parse the cell contents.
- Returns
(test_content, config_content, literals_content)
-
pytest_notebook.ipy_magic.pytest(line: str = '', cell: Optional[str] = None, local_ns: Optional[dict] = None)[source]¶ Run pytest.
%pytest arg1 arg2 ...will run pytest in a temporary directory.%%pytest arg1 arg2 ...will additionally write the cell contents to a test module in the temporary directory.The cell content can optionally contain a fenced sections:
---: lines extracted and written aspytest.ini***: each line should be able to be evaluated as a tuple of two strings, (file_content, file_name), that will be written to the temporary directory. Any variables in the notebook scope can be used in these expressions.
Example:
%%pytest -v --- [pytest] adopts = --disable-warning --- *** (content_string, "test_other.py") *** def test_something(): assert True
Note: to change output width, se the ‘COLUMNS’ environmental variable:
import os os.environ["COLUMNS"] = "80"
-
pytest_notebook.ipy_magic.run_pytest(args: List[str], cwd: Union[str, pathlib.Path, None] = None)[source]¶ Run pytest, with live output.
Adapted from https://stackoverflow.com/a/18422264/5033292
Note: originally this used
pytest.mainto run pytest, however, there was issues with multiple calls to it (see: https://docs.pytest.org/en/latest/usage.html#calling-pytest-from-python-code).