Setup pytest#
We also want testing for our Python code, so let’s get pytest installed.
Install and Config#
To start, we’ll add pytest to the dependencies in pyproject.toml.
Really, they should go in dev dependencies, but this project really just a tutorial.
Let’s go ahead and add all the dependencies we’ll need for the next few steps:
dependencies = [
"sphinx",
"myst-parser",
"furo",
"pytest",
"playwright",
"html5lib",
"pytest-playwright",
"starlette",
"uvicorn",
"watchfiles",
"anyio",
"httpx"
]
After adding, we do:
$ pip install -e .
We’ll also start the process of centralizing our pytest options.
Instead of pytest.ini, we’ll use [tool.pytest.ini_options] in pyproject.toml.
As an example, add this to pyproject.toml to configure strict marker usage in pytest:
[tool.pytest.ini_options]
addopts = "--strict-markers"
First Python Code and Test#
As before, we’ll put a little tracer in our Python code and write a simple test.
In src/pyodide_components/__init__.py:
PYODIDE_COMPONENTS = "Hello"
Then, in tests/test_init.py:
from pyodide_components import PYODIDE_COMPONENTS
def test_hello():
assert PYODIDE_COMPONENTS == "Hello"
Running pytest shows that the test passes.