{ "info": { "author": "Nir Soffer", "author_email": "nirsof@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Pytest", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Testing" ], "description": "=================\npytest-threadleak\n=================\n\n.. image:: https://travis-ci.org/nirs/pytest-threadleak.svg?branch=master\n :target: https://travis-ci.org/nirs/pytest-threadleak\n :alt: See Build Status on Travis CI\n\n.. image:: https://ci.appveyor.com/api/projects/status/github/nirs/pytest-threadleak?branch=master\n :target: https://ci.appveyor.com/project/nirs/pytest-threadleak/branch/master\n :alt: See Build Status on AppVeyor\n\nDetects tests leaking threads\n=============================\n\nInstallation\n------------\n\nYou can install \"pytest-threadleak\" via `pip`_ from `PyPI`_::\n\n $ pip install pytest-threadleak\n\n\nUsage\n-----\n\nThe threadleak pytest plugin will fail leaking threads. This can be an issue in\nthe test, or in the tested code.\n\nHere is an example leaking test::\n\n $ cat leak_test.py\n import threading\n import time\n\n def test_leak():\n threading.Thread(target=time.sleep, args=(1,)).start()\n\nHere is an example run with thread leak plugin enabled::\n\n $ pytest --threadleak leak_test.py\n ...\n leak_test.py::test_leak FAILED\n ...\n > ???\n E Failed: Test leaked []\n\nIf you want to enable thread leak by default, you can enable it in your\npytest.ini or tox.ini::\n\n [pytest]\n threadleak = True\n\n\nContributing\n------------\n\nRunning the tests::\n\n $ tox\n\n\nLicense\n-------\n\nDistributed under the terms of the `MIT`_ license, \"pytest-threadleak\" is free\nand open source software\n\n\nCredits\n-------\n\nThis `Pytest`_ plugin was generated with `Cookiecutter`_ along with\n`@hackebrot`_'s `Cookiecutter-pytest-plugin`_ template.\n\n\n.. _`Cookiecutter`: https://github.com/audreyr/cookiecutter\n.. _`@hackebrot`: https://github.com/hackebrot\n.. _`MIT`: http://opensource.org/licenses/MIT\n.. _`cookiecutter-pytest-plugin`: https://github.com/pytest-dev/cookiecutter-pytest-plugin\n.. _`pytest`: https://github.com/pytest-dev/pytest\n.. _`tox`: https://tox.readthedocs.io/en/latest/\n.. _`pip`: https://pypi.python.org/pypi/pip/\n.. _`PyPI`: https://pypi.python.org/pypi", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nirs/pytest-threadleak", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pytest-threadleak", "package_url": "https://pypi.org/project/pytest-threadleak/", "platform": "", "project_url": "https://pypi.org/project/pytest-threadleak/", "project_urls": { "Homepage": "https://github.com/nirs/pytest-threadleak" }, "release_url": "https://pypi.org/project/pytest-threadleak/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "Detects thread leaks", "version": "0.2.0" }, "last_serial": 3160581, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a3439870ef3a0c2180e6f6f5798c7a70", "sha256": "f00f68d508c21efbd12c883312ccd333cfb3ff07ef979b41714fe3ff7cd78bbb" }, "downloads": -1, "filename": "pytest-threadleak-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a3439870ef3a0c2180e6f6f5798c7a70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3446, "upload_time": "2017-07-01T22:56:48", "url": "https://files.pythonhosted.org/packages/1d/5a/123a0f6f92f6f7a04fde505942139e43cfb3c40ee396d9d95e7c0bdafb8d/pytest-threadleak-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "99ef6828f735d42ccdbfaf0a32a900c1", "sha256": "5f55e24fdf8ebca0416f76a11e9997b71140db758e035fa65ec4c16b241a2721" }, "downloads": -1, "filename": "pytest-threadleak-0.2.0.tar.gz", "has_sig": false, "md5_digest": "99ef6828f735d42ccdbfaf0a32a900c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3490, "upload_time": "2017-09-08T22:04:38", "url": "https://files.pythonhosted.org/packages/83/ee/77f12496bd512d30d9b21362d111e7dd93391026a4a4479557a2a0cedbe6/pytest-threadleak-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "99ef6828f735d42ccdbfaf0a32a900c1", "sha256": "5f55e24fdf8ebca0416f76a11e9997b71140db758e035fa65ec4c16b241a2721" }, "downloads": -1, "filename": "pytest-threadleak-0.2.0.tar.gz", "has_sig": false, "md5_digest": "99ef6828f735d42ccdbfaf0a32a900c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3490, "upload_time": "2017-09-08T22:04:38", "url": "https://files.pythonhosted.org/packages/83/ee/77f12496bd512d30d9b21362d111e7dd93391026a4a4479557a2a0cedbe6/pytest-threadleak-0.2.0.tar.gz" } ] }