Skip to main content

Detects thread leaks

Project description

Current version Supports Python 2.7, 3.10, 3.9, 3.8, 3.7, 3.7 Downloads per month Tests status MIT license

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

pytest-threadleak-0.5.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

pytest_threadleak-0.5.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file pytest-threadleak-0.5.0.tar.gz.

File metadata

  • Download URL: pytest-threadleak-0.5.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for pytest-threadleak-0.5.0.tar.gz
Algorithm Hash digest
SHA256 57a39b1c5c2263d8b0cc17bb2d295e19d7a6efa9122c89550f999e23711b6aa0
MD5 8c61a345979917b5b5dcacffeed253bd
BLAKE2b-256 ac198cf45fd6d6a450a13a571ed77d76965c83bfc6f49379ff79b115d838d0d2

See more details on using hashes here.

File details

Details for the file pytest_threadleak-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_threadleak-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3e1b41d5b1e04443703496a575acad61c7d3c3f7024e973e901ca0945893f24
MD5 e90facbc7c158e15f378d6c2fc3f935a
BLAKE2b-256 c081440cac8f786c998be695d76593b4b93137e5dc5824bec1425ba52672512f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page