Skip to content

Repository files navigation

Build Status PyPI Conda Version Coverage Status Ruff Downloads

pytest-loguru

A pytest plugin to add support for loguru to pytest's caplog fixture.

You can install it from pypi with:

pip install pytest-loguru

and from conda-forge with:

conda install -c conda-forge pytest-loguru

Usage

Once 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

Environment

Development is currently done using Python 3.12. The environment can be created with:

uv sync

This creates a .venv folder with the versions specified in the project's uv.lock file.

Pre-commit

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 install

With 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-files

Packages

uv 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 --upgrade

Project

uv is used for project management. The project can be built using:

uv build

Linting and syntax checking can be run with:

uv run ruff format --check
uv run ruff check

Tests can be executed using:

uv run pytest

About

No description, website, or topics provided.

Resources

Contributing

Stars

33 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages