Metadata-Version: 1.1
Name: pytest-profiling
Version: 1.0.0
Summary: Profiling plugin for py.test
Home-page: https://github.com/manahl/pytest-plugins
Author: Ed Catmur
Author-email: ed@catmur.co.uk
License: MIT license
Description: Pytest Profiling Plugin
        =======================
        
        Profiling plugin for pytest, with tabular and heat graph output.
        
        Tests are profiled with
        `cProfile <http://docs.python.org/library/profile.html#module-cProfile>`__
        and analysed with
        `pstats <http://docs.python.org/library/profile.html#pstats.Stats>`__;
        heat graphs are generated using
        `gprof2dot <http://code.google.com/p/jrfonseca/wiki/Gprof2Dot>`__ and
        `dot <http://www.graphviz.org/>`__.
        
        .. figure:: https://cdn.rawgit.com/manahl/pytest-plugins/master/pytest-profiling/docs/static/profile_combined.svg
           :alt: Example Graph
        
           Example Graph
        Installation
        ------------
        
        Install using your favourite package installer:
        
        .. code:: bash
        
                pip install pytest-profilng
                # or
                easy_install pytest-profiling
        
        Enable the fixture explicitly in your tests or conftest.py (not required
        when using setuptools entry points):
        
        .. code:: python
        
                pytest_plugins = ['pytest_profiling']
        
        Usage
        -----
        
        Once installed, the plugin provides extra options to pytest:
        
        .. code:: bash
        
                $ py.test --help
                ...
                  Profiling:
                    --profile           generate profiling information
                    --profile-svg       generate profiling graph (using gprof2dot and dot
                                        -Tsvg)
        
        The ``--profile`` and ``profile-svg`` options can be combined with any
        other option::
        
        ::
        
                $ py.test tests/unit/test_logging.py --profile
                ============================= test session starts ==============================
                platform linux2 -- Python 2.6.2 -- pytest-2.2.3
                collected 3 items
        
                tests/unit/test_logging.py ...
                Profiling (from prof/combined.prof):
                Fri Oct 26 11:05:00 2012    prof/combined.prof
        
                         289 function calls (278 primitive calls) in 0.001 CPU seconds
        
                   Ordered by: cumulative time
                   List reduced from 61 to 20 due to restriction <20>
        
                   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
                        3    0.000    0.000    0.001    0.000 <string>:1(<module>)
                      6/3    0.000    0.000    0.001    0.000 core.py:344(execute)
                        3    0.000    0.000    0.001    0.000 python.py:63(pytest_pyfunc_call)
                        1    0.000    0.000    0.001    0.001 test_logging.py:34(test_flushing)
                        1    0.000    0.000    0.000    0.000 _startup.py:23(_flush)
                        2    0.000    0.000    0.000    0.000 mock.py:979(__call__)
                        2    0.000    0.000    0.000    0.000 mock.py:986(_mock_call)
                        4    0.000    0.000    0.000    0.000 mock.py:923(_get_child_mock)
                        6    0.000    0.000    0.000    0.000 mock.py:512(__new__)
                        2    0.000    0.000    0.000    0.000 mock.py:601(__get_return_value)
                        4    0.000    0.000    0.000    0.000 mock.py:695(__getattr__)
                        6    0.000    0.000    0.000    0.000 mock.py:961(__init__)
                    22/14    0.000    0.000    0.000    0.000 mock.py:794(__setattr__)
                        6    0.000    0.000    0.000    0.000 core.py:356(getkwargs)
                        6    0.000    0.000    0.000    0.000 mock.py:521(__init__)
                        3    0.000    0.000    0.000    0.000 skipping.py:122(pytest_pyfunc_call)
                        6    0.000    0.000    0.000    0.000 core.py:366(varnames)
                        3    0.000    0.000    0.000    0.000 skipping.py:125(check_xfail_no_run)
                        2    0.000    0.000    0.000    0.000 mock.py:866(assert_called_once_with)
                        6    0.000    0.000    0.000    0.000 mock.py:645(__set_side_effect)
        
        
                =========================== 3 passed in 0.13 seconds ===========================
        
        pstats files (one per test item) are retained for later analysis in
        ``prof`` directory, along with a ``combined.prof`` file:
        
        .. code:: bash
        
                $ ls -1 prof/
                combined.prof
                test_app.prof
                test_flushing.prof
                test_import.prof
        
        If the ``--profile-svg`` option is given, along with the prof files and
        tabular output a svg file will be generated:
        
        .. code:: bash
        
                $ py.test tests/unit/test_logging.py --profile-svg
                ...
                SVG profile in prof/combined.svg.
        
        This is best viewed with a good svg viewer e.g. Chrome.
        
        Changelog
        ---------
        
        1.0 (2015-12-21)
        ~~~~~~~~~~~~~~~~
        
        -  Initial public release
        
        
Platform: unix
Platform: linux
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Utilities
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
