{ "info": { "author": "Kirk Strauser", "author_email": "kirk@amino.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 :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Testing" ], "description": "==============\npytest-fastest\n==============\n\n.. image:: https://img.shields.io/pypi/v/pytest-fastest.svg\n :target: https://pypi.org/project/pytest-fastest\n :alt: PyPI version\n\n.. image:: https://img.shields.io/pypi/pyversions/pytest-fastest.svg\n :target: https://pypi.org/project/pytest-fastest\n :alt: Python versions\n\n.. image:: https://travis-ci.com/kstrauser/pytest-fastest.svg?branch=dev\n :target: https://travis-ci.com/kstrauser/pytest-fastest\n :alt: See Build Status on Travis CI\n\n.. image:: https://ci.appveyor.com/api/projects/status/github/kstrauser/pytest-fastest?branch=dev\n :target: https://ci.appveyor.com/project/kstrauser/pytest-fastest/branch/dev\n :alt: See Build Status on AppVeyor\n\nUse SCM and coverage to run only needed tests\n\n----\n\nThis `pytest`_ plugin was generated with `Cookiecutter`_ along with `@hackebrot`_'s `cookiecutter-pytest-plugin`_ template.\n\n\nFeatures\n--------\n\n* Gathers coverage data from tests to track which tests call functions from which modules.\n* Uses Git to track changes from a given commit to find the minimum set of tests that need to run to test new changes, then skips everything else.\n\n\nRequirements\n------------\n\n* Python 3.5+\n* pytest 3.4.0+\n\n\nInstallation\n------------\n\nYou can install \"pytest-fastest\" via `pip`_ from `PyPI`_::\n\n $ pip install pytest-fastest\n\n\nUsage\n-----\n\npytest-fastest can be set to run only tests:\n\n* That test modules that have changed in Git,\n* Tests that we don't already have coverage data for, and\n* Tests that we've added or changed.\n\nIn most common development workflows where you make short-lived branches\noff a main \"master\" or \"dev\" branch, the amount of code that actually\nchanges while fixing a bug or writing a feature is usually just a small\nportion of the whole codebase. Instead of running thousands of tests\nafter each change, pytest-fastest can identify the relevant ones that\nthoroughly test your work but skip all the things you *haven't* changed.\n\nTo use it:\n\n* In ``pytest.ini``, set ``fastest_commit`` to the name of a Git commit to\n compare your current work against. (You can also set or override it on the\n command line with ``--fastest-commit``). This is required if you want to\n skip tests, which is the main reason for using this plugin.\n\n* Use the command line argument ``--fastest-mode`` to choice the appropriate\n running mode:\n\n - ``all`` (default): Run all tests without collecting coverage data. This\n emulates normal pytest behavior and has no effect on performance.\n - ``skip``: Skip tests that don't need to be run, but update coverage data\n on the ones that do run. This will usually be faster than ``all``, but\n because collecting coverage information takes some time, as the number\n of un-skippable tests grows very large it may actually become slower.\n - ``gather``: Don't skip any tests, but do gather coverage data. This is\n slower than ``all`` but can be used to seed the coverage cache.\n - ``cache``: This is a fast mode for fixing existing tests. It skips tests\n but doesn't update the coverage cache. It will never be slower than\n ``all`` and will always be faster than ``skip``.\n\nContributing\n------------\nContributions are very welcome. Tests can be run with `tox`_, please ensure\nthe coverage at least stays the same before you submit a pull request.\n\nLicense\n-------\n\nDistributed under the terms of the `MIT`_ license, \"pytest-fastest\" is free and open source software\n\n\nIssues\n------\n\nIf you encounter any problems, please `file an issue`_ along with a detailed description.\n\n.. _`Cookiecutter`: https://github.com/audreyr/cookiecutter\n.. _`@hackebrot`: https://github.com/hackebrot\n.. _`MIT`: http://opensource.org/licenses/MIT\n.. _`BSD-3`: http://opensource.org/licenses/BSD-3-Clause\n.. _`GNU GPL v3.0`: http://www.gnu.org/licenses/gpl-3.0.txt\n.. _`Apache Software License 2.0`: http://www.apache.org/licenses/LICENSE-2.0\n.. _`cookiecutter-pytest-plugin`: https://github.com/pytest-dev/cookiecutter-pytest-plugin\n.. _`file an issue`: https://github.com/kstrauser/pytest-fastest/issues\n.. _`pytest`: https://github.com/pytest-dev/pytest\n.. _`tox`: https://tox.readthedocs.io/en/latest/\n.. _`pip`: https://pypi.org/project/pip/\n.. _`PyPI`: https://pypi.org/project\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kstrauser/pytest-fastest", "keywords": "", "license": "MIT", "maintainer": "Kirk Strauser", "maintainer_email": "kirk@amino.com", "name": "pytest-fastest", "package_url": "https://pypi.org/project/pytest-fastest/", "platform": "", "project_url": "https://pypi.org/project/pytest-fastest/", "project_urls": { "Documentation": "http://pytest-fastest.readthedocs.io/en/latest/", "Homepage": "https://github.com/kstrauser/pytest-fastest", "Repository": "https://github.com/kstrauser/pytest-fastest" }, "release_url": "https://pypi.org/project/pytest-fastest/0.0.9/", "requires_dist": [ "pytest (>=4.4,<5.0)" ], "requires_python": ">=3.5,<4.0", "summary": "Use SCM and coverage to run only needed tests", "version": "0.0.9" }, "last_serial": 5168331, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5ab531d5bfbcf8106ece55e59b061a7b", "sha256": "9d410bcfa52f41621e1eebc57223ad0aa235266f6be9ee14e4440212e1e224ee" }, "downloads": -1, "filename": "pytest_fastest-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5ab531d5bfbcf8106ece55e59b061a7b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 5721, "upload_time": "2018-05-18T05:33:40", "url": "https://files.pythonhosted.org/packages/8d/a8/202417a8663a451e9c74e0bcb52f9dd8a00f9ea0a05034f716ebfc50e8af/pytest_fastest-0.0.1-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "39c0de2ecc71bab3a77de8c6aa1d7e73", "sha256": "6efb551a9590ea41c9c9115b1f2fe7dc10920dfc88068c2c337a87de98e5dbab" }, "downloads": -1, "filename": "pytest_fastest-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "39c0de2ecc71bab3a77de8c6aa1d7e73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5810, "upload_time": "2018-05-18T06:37:14", "url": "https://files.pythonhosted.org/packages/72/39/509994f5eb8343a10bc24d2e91ec0e8bc1fbd9a8a39a9e02234aa17d1f10/pytest_fastest-0.0.2-py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "af6ca65f016f4f90f6f11b70de004adb", "sha256": "b31bddda85ece76aeed018bc58e3fff07fdf9c5ad36d94285eb4db13b26caf72" }, "downloads": -1, "filename": "pytest_fastest-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "af6ca65f016f4f90f6f11b70de004adb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5807, "upload_time": "2018-05-18T06:39:21", "url": "https://files.pythonhosted.org/packages/8b/1a/5c7a59bdc01432e5a635bcba75d89a625371ea80e6465a29ae5d635818f7/pytest_fastest-0.0.3-py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "39ccc7032c2dcdad9ec01c2b4267ef57", "sha256": "5021d922a1115ece0b152a53c107455311af0ee38aa0a4b24053da3cc6a8b4fc" }, "downloads": -1, "filename": "pytest_fastest-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "39ccc7032c2dcdad9ec01c2b4267ef57", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5817, "upload_time": "2018-05-18T07:28:55", "url": "https://files.pythonhosted.org/packages/2b/b8/7b649dd013b8686f2c8a167499564b919816091f6a297d055d6e823fe207/pytest_fastest-0.0.4-py3-none-any.whl" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "10989bf74c6d8290b7142f0cd5140b83", "sha256": "4d39c9e9ada221681dce92ed6232fccfe1f3b017adbd4f6c2ea1107b590da3f8" }, "downloads": -1, "filename": "pytest_fastest-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "10989bf74c6d8290b7142f0cd5140b83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5930, "upload_time": "2018-05-18T17:16:12", "url": "https://files.pythonhosted.org/packages/7f/49/9f6247213697e5cb27c561d0ce1ee3e832187fdd639123c83aeedad8fec4/pytest_fastest-0.0.5-py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "5f5c9562b04b4f6e7ab40c4480042596", "sha256": "e66fdfe9147ff681671df09a25c2a3c13cddef35703d87eea7a4f54f970da4c0" }, "downloads": -1, "filename": "pytest_fastest-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "5f5c9562b04b4f6e7ab40c4480042596", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 5976, "upload_time": "2018-05-18T17:44:26", "url": "https://files.pythonhosted.org/packages/91/46/451e6b39a4d2fb16989da1f8ea05a51530eb7eae9886eae0f13ecbcd7d72/pytest_fastest-0.0.6-py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "c0de4e08290dbbd26e1abc5d9d236f2f", "sha256": "6f374e3bd2f671ce8d53c28ba6ab16ae7f6a1cd7e2eafd85a98095ee2b824609" }, "downloads": -1, "filename": "pytest_fastest-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c0de4e08290dbbd26e1abc5d9d236f2f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 6407, "upload_time": "2018-05-19T16:25:30", "url": "https://files.pythonhosted.org/packages/85/31/97863d13b241450f4b46071c9d8eb420eb2002b4472538951580146206f0/pytest_fastest-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23a4c9d43c3b406ef087dcd79eeffb07", "sha256": "f53210920e1b23acc4556fdb52e66677348b54925c07b589c1fedcdfca5f5c33" }, "downloads": -1, "filename": "pytest-fastest-0.0.7.tar.gz", "has_sig": false, "md5_digest": "23a4c9d43c3b406ef087dcd79eeffb07", "packagetype": "sdist", "python_version": "source", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 6837, "upload_time": "2018-05-31T03:36:31", "url": "https://files.pythonhosted.org/packages/e3/77/ff1919b2fa02a33a1167f951c9652279fdaf9395e1a0775dfb8f9ecddcad/pytest-fastest-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "f8ad76059ad2a6775ccc50eeede39573", "sha256": "9c969a90e59690a58f50aa45029c75da7e32f01f36f700c34b4a2d7ee29a99cc" }, "downloads": -1, "filename": "pytest_fastest-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "f8ad76059ad2a6775ccc50eeede39573", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*", "size": 6407, "upload_time": "2018-08-28T05:19:20", "url": "https://files.pythonhosted.org/packages/6a/3f/dc63287451b08a28538ab7642737d88c66a4ba2f3c618803bb8545914aa6/pytest_fastest-0.0.8-py3-none-any.whl" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "27e3503de94dc1fa962998a4aae0e8f1", "sha256": "6c21c00a6a7b6eea85f2f840fb43a56ff3ec63f2e1603ac002df1d506f84d255" }, "downloads": -1, "filename": "pytest_fastest-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "27e3503de94dc1fa962998a4aae0e8f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 12285, "upload_time": "2019-04-20T18:30:08", "url": "https://files.pythonhosted.org/packages/46/7c/1290e2fe1aaeaef265c87fce4b2932b0bc1dddfe4dd278ebbdfd5189f87f/pytest_fastest-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "322cb58afa6929cff9117be62c7f0081", "sha256": "273d6b28386becc2aa4c27a682e3d8ca054befa87044f5399e8dfacecc2ac0d4" }, "downloads": -1, "filename": "pytest-fastest-0.0.9.tar.gz", "has_sig": false, "md5_digest": "322cb58afa6929cff9117be62c7f0081", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 6517, "upload_time": "2019-04-20T18:30:07", "url": "https://files.pythonhosted.org/packages/a8/63/fa44feeb5b71133b4d6bd6d392b5792369a1bd8d6a9fc0ef7490ca56c5a5/pytest-fastest-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "27e3503de94dc1fa962998a4aae0e8f1", "sha256": "6c21c00a6a7b6eea85f2f840fb43a56ff3ec63f2e1603ac002df1d506f84d255" }, "downloads": -1, "filename": "pytest_fastest-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "27e3503de94dc1fa962998a4aae0e8f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 12285, "upload_time": "2019-04-20T18:30:08", "url": "https://files.pythonhosted.org/packages/46/7c/1290e2fe1aaeaef265c87fce4b2932b0bc1dddfe4dd278ebbdfd5189f87f/pytest_fastest-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "322cb58afa6929cff9117be62c7f0081", "sha256": "273d6b28386becc2aa4c27a682e3d8ca054befa87044f5399e8dfacecc2ac0d4" }, "downloads": -1, "filename": "pytest-fastest-0.0.9.tar.gz", "has_sig": false, "md5_digest": "322cb58afa6929cff9117be62c7f0081", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 6517, "upload_time": "2019-04-20T18:30:07", "url": "https://files.pythonhosted.org/packages/a8/63/fa44feeb5b71133b4d6bd6d392b5792369a1bd8d6a9fc0ef7490ca56c5a5/pytest-fastest-0.0.9.tar.gz" } ] }