{ "info": { "author": "Volodymyr Trotsyshyn", "author_email": "devova@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.7" ], "description": "========\nOverview\n========\n\n.. start-badges\n\n.. list-table::\n :stub-columns: 1\n\n * - tests\n - | |drone|\n * - package\n - | |version| |supported-versions| |supported-implementations|\n\n.. |drone| image:: https://cloud.drone.io/api/badges/devova/pytest-yield/status.svg\n :alt: Drone-CI Build Status\n :target: https://cloud.drone.io/devova/pytest-yield\n\n\n.. |version| image:: https://img.shields.io/pypi/v/pytest-yield.svg\n :alt: PyPI Package latest release\n :target: https://pypi.python.org/pypi/pytest-yield\n\n.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/pytest-yield.svg\n :alt: Supported versions\n :target: https://pypi.python.org/pypi/pytest-yield\n\n.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/pytest-yield.svg\n :alt: Supported implementations\n :target: https://pypi.python.org/pypi/pytest-cov\n\n.. end-badges\n\nWhat?\n~~~~~\n\n**pytest\\_yield** is a plugin that allows run tests as coroutines. This\nmeans that a few tests can being executing at same time.\n\nWhy?\n~~~~\n\nThis is first question that engineers asking. General theory said us\nthat each test have to be run separetelly and independently, meaning\nwithout any influence on other tests. This plugin breaks this rules at\nall.\n\nSo why do we need it?\n\nImagine we have integration tests where each test execution takes very\nlong time. For examle test should wait for some reactions depend on\ninitial actions. This waiting could take up to e.g. 1 hour. And even\nafter it we need perform next action from scenario and wait more.\nSyncronous execution of all tests, one by one, will take huge amout of\ntime. But what if all test cases are independent, so actions of *test1*\ndoes not influence results of *test2*. Than make sense some how skip\nwaiting prosess of *test1* and switch execution context to *test2*. This\nactually what **pytest\\_yield** doing.\n\nHow?\n~~~~\n\nEach concurrent test is suppose to be a generator. Switching of\nexecution context is performed after each ``yield``. Test add itself to\nthe end of a deueue if generator is not exausted yet. After new one is\npulled from left side of dequeue. Assume test have ``N`` yields, tahn it\nwill be ``N`` times rescheduled.\n\n|image2|\n\nDo not use with\n~~~~~~~~~~~~~~~\n\nTests that are cross dependent. Most\nparticular example is unittests with mocks, if *test1* mock some method,\nthis will be implicitly mocked in *test2* also.\n\n.. |image2| image:: https://raw.githubusercontent.com/devova/pytest-yield/b0c7aa058df5f50cb9a05272fce01fc62a78bbee/how-it-works-pytest-yield.svg?sanitize=true", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/devova/pytest-yield", "keywords": "testing,pytest", "license": "", "maintainer": "", "maintainer_email": "", "name": "pytest-yield", "package_url": "https://pypi.org/project/pytest-yield/", "platform": "", "project_url": "https://pypi.org/project/pytest-yield/", "project_urls": { "Homepage": "https://github.com/devova/pytest-yield" }, "release_url": "https://pypi.org/project/pytest-yield/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "PyTest plugin to run tests concurrently, each `yield` switch context to other one", "version": "1.0.0" }, "last_serial": 4731638, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "90be59d763b9f813566ce742706574df", "sha256": "192ab8bd849b4336a8bbf6ffd326158869b8b130bfaf8e35491e2b8739976d1a" }, "downloads": -1, "filename": "pytest-yield-0.1.zip", "has_sig": true, "md5_digest": "90be59d763b9f813566ce742706574df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4978, "upload_time": "2018-03-20T15:16:02", "url": "https://files.pythonhosted.org/packages/ef/3f/ea55348fb2fbadcd8ddb6f5b980676edd11bc51345279724fb114ec6d978/pytest-yield-0.1.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "022674ff51817edee872dcfb5c1c377f", "sha256": "cd11ab119d157b45f8ab82efed313897a3ad5f8e8ba82ea50f239cfb49a29496" }, "downloads": -1, "filename": "pytest-yield-0.1.1.zip", "has_sig": false, "md5_digest": "022674ff51817edee872dcfb5c1c377f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5031, "upload_time": "2018-03-21T13:34:06", "url": "https://files.pythonhosted.org/packages/7d/d5/8b021bc8fb66c076fce97fdbb56556ab26f829b98c5afcc6127a31022acc/pytest-yield-0.1.1.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5b742b7cd6a13f179922de10fa0bd05c", "sha256": "7a04905a17183a0962512ef12d46abf92fe928beda28be23fd722296bab2c7fa" }, "downloads": -1, "filename": "pytest-yield-0.1.3.zip", "has_sig": false, "md5_digest": "5b742b7cd6a13f179922de10fa0bd05c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11479, "upload_time": "2018-03-21T13:41:22", "url": "https://files.pythonhosted.org/packages/49/8c/72f5255a671288fec8a110889a813dc490005a98cd47634e1e106dcd808c/pytest-yield-0.1.3.zip" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "dea3dcacba28fb39c1c6e587a7a77ba7", "sha256": "16aed873fb1970f1c5927c1008e49de36926eb9a1f46cec539d6b5ab67259e95" }, "downloads": -1, "filename": "pytest-yield-0.1.5.zip", "has_sig": false, "md5_digest": "dea3dcacba28fb39c1c6e587a7a77ba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11699, "upload_time": "2018-04-01T15:03:50", "url": "https://files.pythonhosted.org/packages/6d/23/884599acd2a11626021c64b0f10531ecd3a7a36896380acf6956fb97d413/pytest-yield-0.1.5.zip" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c8247652f3b8fc6a71e617d14f581509", "sha256": "7390c2140501e14ff7b7febbc8c94218f2841be81214b58fa62490186311d899" }, "downloads": -1, "filename": "pytest-yield-0.1.6.zip", "has_sig": false, "md5_digest": "c8247652f3b8fc6a71e617d14f581509", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12002, "upload_time": "2018-06-19T07:49:51", "url": "https://files.pythonhosted.org/packages/47/12/b9d0c78f0834360138e3d3e515974b5c80e0773a797ec25d98b31e7dd83b/pytest-yield-0.1.6.zip" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "96cce54129aedfab954abef71c92aef2", "sha256": "48f61b969e8f68c95673bf3a5cd9c85d575925a64ad4d6409b76555e7657d7b9" }, "downloads": -1, "filename": "pytest-yield-0.1.7.zip", "has_sig": false, "md5_digest": "96cce54129aedfab954abef71c92aef2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12029, "upload_time": "2018-12-03T13:35:57", "url": "https://files.pythonhosted.org/packages/5b/47/5c0a83b1e7447ea8923febb483e945d2309b843398269047d3f5e03ed44a/pytest-yield-0.1.7.zip" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "fda34d8637d70a84fbf5c499aa4f4eca", "sha256": "557230f15f09db085857c5cb651914c569e60ed8551eaa55c1c6d4438dbfd76f" }, "downloads": -1, "filename": "pytest-yield-0.1.8.zip", "has_sig": false, "md5_digest": "fda34d8637d70a84fbf5c499aa4f4eca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12203, "upload_time": "2018-12-03T18:40:06", "url": "https://files.pythonhosted.org/packages/da/1b/d67cfa49fa8ccc2c0b95d7c98ce316f8c13f6c29dde340a5f2c70afb5a68/pytest-yield-0.1.8.zip" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "9983124b26cd915eaccc19e2b2c1bce8", "sha256": "4b8bbf1b3889fc331b9b0cf4e951b912e4bbfc5a94ca70bd6cf6ef765827073d" }, "downloads": -1, "filename": "pytest-yield-0.1.9.zip", "has_sig": false, "md5_digest": "9983124b26cd915eaccc19e2b2c1bce8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12313, "upload_time": "2018-12-03T19:23:26", "url": "https://files.pythonhosted.org/packages/78/6b/dce8ef2ad3bbfaa46d1e95d72535054b1d968836182fe5c6aae0a1712fe0/pytest-yield-0.1.9.zip" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "8ec3f94d0bec7bccaa102fb08b9f5b60", "sha256": "00f061a5482e4a08290df83971972f9da2b9f53d4feb2fa64af8b24a573ee3ba" }, "downloads": -1, "filename": "pytest-yield-0.2.8.zip", "has_sig": false, "md5_digest": "8ec3f94d0bec7bccaa102fb08b9f5b60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15974, "upload_time": "2018-12-05T13:37:27", "url": "https://files.pythonhosted.org/packages/37/16/8ef2f86a9b98bbeeccc391e355def65f2849be9d97f8d10fbd258b44febb/pytest-yield-0.2.8.zip" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "39ba4127e3ace0c834ff5f23d165db50", "sha256": "8f8c8a738bbf8eea1c541ebd4ccc53388d14ca41da7143bd1346b61bc11b6a6a" }, "downloads": -1, "filename": "pytest-yield-0.2.9.zip", "has_sig": false, "md5_digest": "39ba4127e3ace0c834ff5f23d165db50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16755, "upload_time": "2018-12-06T13:51:55", "url": "https://files.pythonhosted.org/packages/0f/1b/4bcacf3c44323171399b9e9f15ccc4bd2f67b0196d2748febe73690672dc/pytest-yield-0.2.9.zip" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "33f4b5142e940cef2f74d81910a18ddc", "sha256": "65adad3c06af831c89f0df8c94948708b4c0adc30a23b5b88308d1e6452891b5" }, "downloads": -1, "filename": "pytest-yield-1.0.0.zip", "has_sig": false, "md5_digest": "33f4b5142e940cef2f74d81910a18ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16763, "upload_time": "2019-01-23T14:50:06", "url": "https://files.pythonhosted.org/packages/05/6a/e6846225674eabb469d052836a37c23a1fd0c1f4b5ffc7729060d8d47843/pytest-yield-1.0.0.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33f4b5142e940cef2f74d81910a18ddc", "sha256": "65adad3c06af831c89f0df8c94948708b4c0adc30a23b5b88308d1e6452891b5" }, "downloads": -1, "filename": "pytest-yield-1.0.0.zip", "has_sig": false, "md5_digest": "33f4b5142e940cef2f74d81910a18ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16763, "upload_time": "2019-01-23T14:50:06", "url": "https://files.pythonhosted.org/packages/05/6a/e6846225674eabb469d052836a37c23a1fd0c1f4b5ffc7729060d8d47843/pytest-yield-1.0.0.zip" } ] }