Pytest-logger is a pytest plugin configuring handlers for loggers from Python logging module.
You can install pytest-logger via pip from PyPI:
$ [sudo] pip install pytest-logger
Plugin puts logs on per-logger basis to:
standard output,
files within log-specific directory under pytest’s tmpdir_factory session directory.
You can setup plugin using hook:
#conftest.py
import os
def pytest_logger_config(logger_config):
logger_config.add_loggers(['foo', 'bar', 'baz'], stdout_level='info')
logger_config.set_log_option_default('foo,bar')
def pytest_logger_logdirlink(config):
return os.path.join(os.path.dirname(__file__), 'mylogs')
have logging tests or libraries (including fixtures):
#test_something.py
import pytest
import logging
foo = logging.getLogger('foo')
bar = logging.getLogger('bar')
baz = logging.getLogger('baz')
@pytest.yield_fixture(scope='session')
def session_thing():
foo.debug('constructing session thing')
yield
foo.debug('destroying session thing')
@pytest.yield_fixture
def testcase_thing():
foo.debug('constructing testcase thing')
yield
foo.debug('destroying testcase thing')
def test_one(session_thing, testcase_thing):
foo.info('one executes')
bar.warning('this test does nothing aside from logging')
baz.info('extra log, rarely read')
def test_two(session_thing, testcase_thing):
foo.info('two executes')
bar.warning('neither does this')
baz.info('extra log, not enabled by default')
and expect output in terminal (if not captured):
$ py.test -s -v (...) test_something.py::test_one 00:00.002 inf foo: one executes 00:00.002 wrn bar: this test does nothing aside from logging PASSED test_something.py::test_two 00:00.000 inf foo: two executes 00:00.000 wrn bar: neither does this PASSED
being able to change this output by cmdline option:
$ pytest -s -v --log foo.debug,baz (...) test_something.py::test_one 00:00.002 dbg foo: constructing session thing 00:00.002 dbg foo: constructing testcase thing 00:00.002 inf foo: one executes 00:00.003 inf baz: extra log, rarely read PASSED test_something.py::test_two 00:00.000 dbg foo: constructing testcase thing 00:00.000 inf foo: two executes 00:00.001 inf baz: extra log, not enabled by default PASSED
and - the same - in filesystem:
$ file mylogs
mylogs: symbolic link to `/tmp/pytest-of-aurzenligl/pytest-48/logs'
$ tree mylogs
mylogs
`-- test_something.py
|-- test_one
| |-- bar
| |-- baz
| `-- foo
`-- test_two
|-- bar
|-- baz
`-- foo
Distributed under the terms of the MIT license, pytest-logger is free and open source software.
Metadata
Release files for pytest-logger 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pytest-logger-1.1.1.tar.gz | 27.7 kB | Without provenance | Details for pytest-logger-1.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pytest_logger-1.1.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for pytest_logger-1.1.1-py2.py3-none-any.whl |
Total release size: 36.6 kB
Release files / pytest-logger-1.1.1.tar.gz
| Download URL | pytest-logger-1.1.1.tar.gz |
|---|---|
| Size | 27.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
82cb36b505a72e15a2f0e12c6451d8c21ecbe0379d322b2bed4f05cb7842c9d9
|
|
BLAKE2b-256 checksum How to use checksums |
4b937df6dd24ce3e32666bfb45fd95dded221650a5ca5c13bc9d8bea47e13bab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
|
Release files / pytest_logger-1.1.1-py2.py3-none-any.whl
| Download URL | pytest_logger-1.1.1-py2.py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
d9f7b88c04828de649a033779d30f359fce026fde37c1e91d83336a66d27a9fb
|
|
BLAKE2b-256 checksum How to use checksums |
76e48f8663e40fb225748944c685fd1ef0e3b9cfb88d6fc2749613f924e5c70e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
|
Security for pytest-logger 1.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.