A pytest plugin to add support for loguru to pytest's caplog fixture.
You can install it from pypi with:
pip install pytest-loguruand from conda-forge with:
conda install -c conda-forge pytest-loguruOnce installed, the plugin is registered automatically through pytest's
pytest11 entry point, so no import or configuration is needed. Messages
logged with loguru show up in caplog just like standard logging records,
and caplog.at_level / caplog.set_level filter them as usual:
import logging
from loguru import logger
def test_logs(caplog):
logger.warning("something happened")
assert "something happened" in caplog.text
def test_levels(caplog):
with caplog.at_level(logging.ERROR):
logger.info("ignored")
logger.error("kept")
assert caplog.messages == ["kept"]Note that coverage is 100% but the coverage tool is confused by the fixture decorator.
Development is currently done using Python 3.12. The environment can be created with:
uv syncThis creates a .venv folder with the versions specified in the project's uv.lock file.
pre-commit will be installed when syncing uv. It is run every time you make a git commit if you call it like this:
pre-commit installWith pre-commit, all code is formatted according to ruff guidelines.
To check if your changes pass pre-commit without committing, run:
pre-commit run --all-filesuv is used for package management. If you've introduced a new package to the source code (i.e. anywhere in src/), please add it to the project.dependencies section of pyproject.toml with any known version constraints.
To add packages required only for testing or development, add them to the [dependency-groups] section in pyproject.toml.
Any changes to the dependencies will be automatically reflected in uv.lock with pre-commit, but you can re-generate the file without committing by executing:
uv lock --upgradeuv is used for project management. The project can be built using:
uv buildLinting and syntax checking can be run with:
uv run ruff format --check
uv run ruff checkTests can be executed using:
uv run pytest