Metadata-Version: 1.1
Name: pytest-logger
Version: 0.2.1
Summary: Plugin configuring handlers for loggers from Python logging module.
Home-page: https://github.com/aurzenligl/pytest-logger
Author: Krzysztof Laskowski
Author-email: krzysztof.laskowski@nokia.com
License: MIT
Description-Content-Type: UNKNOWN
Description: .. image:: https://img.shields.io/pypi/v/pytest-logger.svg
            :target: https://pypi.python.org/pypi/pytest-logger
            :alt: Pypi Package Version
        .. image:: https://img.shields.io/pypi/pyversions/pytest-logger.svg
            :target: https://pypi.python.org/pypi/pytest-logger
            :alt: Supported Python Versions
        .. image:: https://readthedocs.org/projects/pytest-logger/badge
            :target: http://pytest-logger.readthedocs.io/en/latest
            :alt: Documentation Status
        .. image:: https://coveralls.io/repos/github/aurzenligl/pytest-logger/badge.svg?branch=master
            :target: https://coveralls.io/github/aurzenligl/pytest-logger?branch=master
            :alt: Coverage Status
        .. image:: https://travis-ci.org/aurzenligl/pytest-logger.svg?branch=master
            :target: https://travis-ci.org/aurzenligl/pytest-logger
            :alt: Travis-CI Build Status
        .. image:: https://ci.appveyor.com/api/projects/status/1h4cy8tk220pn03o?svg=true
            :target: https://ci.appveyor.com/project/aurzenligl/pytest-logger
            :alt: AppVeyor-CI Build Status
        
        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.
        
Keywords: py.test pytest logging
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Testing
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
