Package: pytest-leaks
pytest-leaks - A pytest plugin to trace resource leaksA pytest plugin to trace resource leaks.Usageleaks:
  -R LEAKS, --leaks=LEAKS
                        runs each test several times and examines
                        sys.gettotalrefcount() to see if the test appears to
                        be leaking references. The argument should be of the
                        form stab:run where 'stab' is the number of times the
                        test is run to let gettotalrefcount settle down, 'run'
                        is the number of times further it is run. These
                        parameters all have defaults (5 and 4, respectively),
                        and the minimal invocation is '-R :'.To add a leaks test to your py.test session, add the-Roption on the
command line:$ python3-debug -mpytest -v -R : examples/test_faucet.py
=========================== test session starts ===========================
platform linux -- Python 3.7.5, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- .
cachedir: .pytest_cache
rootdir: .
plugins: leaks-0.3.1
collected 4 items

examples/test_faucet.py::test_leaky_faucet LEAKED                   [ 25%]
examples/test_faucet.py::test_broken_faucet FAILED                  [ 50%]
examples/test_faucet.py::test_mended_faucet PASSED                  [ 75%]
examples/test_faucet.py::test_skip_marker_example LEAKED            [100%]

================================ FAILURES =================================
___________________________ test_broken_faucet ____________________________

    def test_broken_faucet():
>       assert 0
E       assert 0

examples/test_faucet.py:8: AssertionError
============================== leaks summary ==============================
examples/test_faucet.py::test_leaky_faucet: leaked references: [2, 2, 2, 2], memory blocks: [2, 2, 2, 2]
examples/test_faucet.py::test_skip_marker_example: leaked (not checked): 'not testing'
================== 1 failed, 1 passed, 2 leaked in 0.50s ==================Note that a debug build of Python must be used.  The test file used
above contains the following code:$ cat test_faucet.py
import pytest

drops = []
def test_leaky_faucet():
    drops.append({})

def test_broken_faucet():
    assert 0

def test_mended_faucet():
    assert 1

@pytest.mark.no_leak_check(fail=True, reason="not testing")
def test_skip_marker_example():
    passNote that pytest-leaks runs tests several times: if you see test failures
that are present only when using pytest-leaks, check that the test does
not modify any global state in a way that prevents it from running a
second time.FeaturesDetects memory leaks by running py.test tests repeatedly and
comparing total reference counts between the runs.Requirementspy.test version >= 3;A debug build of Python (2.7 or >=3.5).On Linux, Python debug builds can be found in packagespythonX.Y-dbg(Debian and derivatives) andpython3-debug(Fedora and derivatives).InstallationYou can install "pytest-leaks" viapipfromPyPI:$ pip install pytest-leaksContributingContributions are very welcome. Tests can be run withtox, please ensure the coverage
at least stays the same before you submit a pull request.LicenseDistributed under the terms of theMITandPSFlicenses, "pytest-leaks"
is free and open source software.IssuesIf you encounter any problems, pleasefile an issuealong with a detailed description.