Plugin configuring handlers for loggers from Python logging module.
Project description
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 hooks:
#conftest.py import os def pytest_logger_stdoutloggers(item): return ['foo', 'bar'] def pytest_logger_fileloggers(item): return ['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') foo.setLevel(logging.INFO) bar = logging.getLogger('bar') @pytest.yield_fixture(scope='session') def session_thing(): foo.info('constructing session thing') yield foo.info('destroying session thing') @pytest.yield_fixture def testcase_thing(): foo.info('constructing testcase thing') yield foo.info('destroying testcase thing') def test_one(session_thing, testcase_thing): foo.info('one executes') bar.warning('this test does nothing aside from logging') def test_two(session_thing, testcase_thing): foo.info('two executes') bar.warning('neither does this')
and expect output in terminal (if not captured):
$ py.test -s -v (...) test_something.py::test_one 00:00.001 inf foo: constructing session thing 00:00.001 inf foo: constructing testcase thing 00:00.002 inf foo: one executes 00:00.002 wrn bar: this test does nothing aside from logging PASSED 00:00.002 inf foo: destroying testcase thing test_something.py::test_two 00:00.000 inf foo: constructing testcase thing 00:00.000 inf foo: two executes 00:00.000 wrn bar: neither does this PASSED 00:00.001 inf foo: destroying testcase thing 00:00.001 inf foo: destroying session thing (...)
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 | `-- foo `-- test_two |-- bar `-- foo
Distributed under the terms of the MIT license, pytest-logger is free and open source software.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pytest-logger-0.1.4.tar.gz
(20.3 kB
view hashes)
Built Distribution
Close
Hashes for pytest_logger-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec79b45630214f7879d46467c3969f79f6170ed078ddc16786ccb42f016656c4 |
|
MD5 | 6738e8f05dbb43424f33696212c97fc9 |
|
BLAKE2b-256 | 0b5cbb04776062f07e9183741c052b3da1a10004338f07a2711a2089a1f90e8a |