Detects thread leaks
Project description
Detects tests leaking threads
Installation
You can install “pytest-threadleak” via pip from PyPI:
$ pip install pytest-threadleak
Usage
The threadleak pytest plugin will fail leaking threads. This can be an issue in the test, or in the tested code.
Here is an example leaking test:
$ cat leak_test.py import threading import time def test_leak(): threading.Thread(target=time.sleep, args=(1,)).start()
Here is an example run with thread leak plugin enabled:
$ pytest --threadleak leak_test.py ... leak_test.py::test_leak FAILED ... > ??? E Failed: Test leaked [<Thread(Thread-1, started 139762716391168)>]
If you want to enable thread leak by default, you can enable it in your pytest.ini or tox.ini:
[pytest] threadleak = True
If you want to enable thread leak on a per test/module basis, you can use the threadleak pytest marker:
To enable it for a single test:
@pytest.mark.threadleak def test_leak(): ...
To disable it for a single test:
@pytest.mark.threadleak(enabled=False) def test_leak(): ...
For an entire test module:
import pytest pytestmark = pytest.mark.threadleak(enabled=False)
If you want to exclude some threads from the leak check, you can specify a regex to match excluded thread names:
[pytest] threadleak = True threadleak_exclude = pool/\d+
Contributing
Running the tests:
$ tox
License
Distributed under the terms of the MIT license, “pytest-threadleak” is free and open source software
Credits
This Pytest plugin was generated with Cookiecutter along with @hackebrot’s Cookiecutter-pytest-plugin template.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_threadleak-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3e1b41d5b1e04443703496a575acad61c7d3c3f7024e973e901ca0945893f24 |
|
MD5 | e90facbc7c158e15f378d6c2fc3f935a |
|
BLAKE2b-256 | c081440cac8f786c998be695d76593b4b93137e5dc5824bec1425ba52672512f |