Skip to main content
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.

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

If you're not sure about the file name format, learn more about wheel file names.

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.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 files

0.4.0

2 files

0.2.0

1 file

0.1.0

1 file

Supported by

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