{ "info": { "author": "reorx", "author_email": "novoreorx@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# Deptest\n\nDeptest is a testing framework to handle situation when your need to control\nthe execution order of the test units. Seriously, deptest does not follow\nthe rules of unit testing, in other words, using this tool means\nyou are thinking againest the philosophy of unit testing:\n\u201cto isolate each part of the program and show that the individual parts are correct\u201d.\n\nBut so what? Programming needs diversity, so does testing methodology.\nIf the situation really exists, we should do something with it,\nthat's why deptest is created, it could be considered as a different\napproach to organize your tests. Try it if you are stuck with unit testing,\nmaybe it'll be helpful :)\n\n## Installation\n\n pip install deptest\n\n## Usage\n\nThe core part of using deptest is to use `depend_on` decorator on your test functions. `depend_on` describes that a test function should be run if and\nonly if its dependency function is `OK`. If dependency is `FAILED`, then the\ntest function will not be executed and the status will be set to `UNMET`.\n\n1. Case 1, simple dependency\n\n ```python\n from deptest import depend_on\n\n @depend_on('test_b')\n def test_a():\n print 'a, depend on a'\n\n def test_b():\n print 'b'\n ```\n\n This will ensure `test_a` run after `test_b` even though `test_a` is defined before `test_b`.\n\n2. Case 2, passing return value\n\n ```python\n from deptest import depend_on\n\n @depend_on('test_b', with_return=True)\n def test_a(name):\n print 'a, depend on', name\n\n def test_b():\n print 'b'\n return 'b'\n ```\n\n With `with_return` argument set to `True`, the return value of `test_b`\n will be passed into `test_a`. By default return values of dependencies\n won't be passed.\n\n2. Case 3, complicated dependencies\n\n ```python\n from deptest import depend_on\n\n @depend_on('test_c', with_return=True)\n @depend_on('test_b', with_return=True)\n def test_a(name1, name2):\n print 'a, depend on', name1, name2\n return 'a'\n\n @depend_on('test_d')\n def test_b():\n print 'b'\n return 'b'\n\n @depend_on('test_d')\n def test_c():\n print 'c'\n return 'c'\n\n def test_d():\n print 'd'\n return 'd'\n ```\n\n The dependent graph of the four functions will be:\n\n ```\n d\n | \\\n b c\n | /\n a\n ```\n\n Thus the execute sequence will be `d, b, c, a` or `d, c, b, a`, the results are fairly the same.\n\n ```\n $ deptest -s test/simple_test.py\n d\n \u2192 simple_test.test_d... OK\n b\n \u2192 simple_test.test_b... OK\n c\n \u2192 simple_test.test_c... OK\n a, depend on b c\n \u2192 simple_test.test_a... OK\n ______________________________________________________________________\n Ran 4 tests, OK 4, FAILED 0, UNMET 0\n ```\n\nYou can see some practical examples in [`examples/`](examples) folder,\nIt's worth mentioning that [`http_api_test.py`](examples/http_api_test.py)\nsimulates an HTTP API testing case, which is mostly the reason why I develop this tool.\n\n> Note: to run `http_api_test.py`, you need [HTTPretty](https://github.com/gabrielfalcao/HTTPretty) installed.\n\nDeptest provides a cli command also called `deptest`, it supports some common\narguments of `nosetests`, like `-s` and `--nocapture`, see detail usage by `deptest -h`:\n\n```\nusage: deptest [-h] [-s] [--nologcapture] [--dry] [--debug] [PATH [PATH ...]]\n\npositional arguments:\n PATH files or dirs to scan\n\noptional arguments:\n -h, --help show this help message and exit\n -s, --nocapture Don't capture stdout (any stdout output will be printed\n immediately)\n --nologcapture Don't capture logging\n --dry Dry run, only show matched files\n --debug Set logging level to debug for deptest logger\n```\n\n## Screenshots\n\nSee it in action, run `deptest examples`:\n\n![Normal Mode](_images/normal.png)\n\nWith `--nologcapture` argument:\n\n![With -s Stdout](_images/withstdout.png)\n\n\n## TODO\n\n- [ ] support generator test function\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/reorx/deptest", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "deptest", "package_url": "https://pypi.org/project/deptest/", "platform": "", "project_url": "https://pypi.org/project/deptest/", "project_urls": { "Homepage": "https://github.com/reorx/deptest" }, "release_url": "https://pypi.org/project/deptest/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "dependent testing framework", "version": "0.2.1" }, "last_serial": 3066630, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "18c1bc10654577c66a6609af875155bf", "sha256": "db887f1f86dd3ecb6fd77654e3cffcc32261d37ad0e6aef4674a3ce788ade7a6" }, "downloads": -1, "filename": "deptest-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "18c1bc10654577c66a6609af875155bf", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4355, "upload_time": "2016-06-01T09:39:47", "url": "https://files.pythonhosted.org/packages/6d/5a/3ef744482558e5f40eb3d71fdba83e41f1a8590d18f22f41e901b1196eb5/deptest-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66a08d9e821f474711bf0493b87eb422", "sha256": "3de714e1766cb64c14183110782434d7fb7916d456779a95e060d7c23956c5b2" }, "downloads": -1, "filename": "deptest-0.1.0.tar.gz", "has_sig": false, "md5_digest": "66a08d9e821f474711bf0493b87eb422", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3223, "upload_time": "2016-06-01T09:39:35", "url": "https://files.pythonhosted.org/packages/a0/f1/f4cc706624f761e560089f3729490b0e40478ef26df8df2874e002eb4f15/deptest-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a6d03d328ee989ae9b4011904a7cd436", "sha256": "8298f5f84209e09258cc75a4c6b86d9fa88e2d0428a3194ad932e286c744bedc" }, "downloads": -1, "filename": "deptest-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a6d03d328ee989ae9b4011904a7cd436", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11896, "upload_time": "2016-06-02T09:15:39", "url": "https://files.pythonhosted.org/packages/71/98/cd91ac47a0fd761bde5a44a4532cbbf3ad2252fddfde61ef6e226c2e17cb/deptest-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3d0734841fd385964472ef2ab0b5204", "sha256": "f4a6ccecdedb231673f78cba5dcd7fd7d74541057142fc5d18829cb603ab69fe" }, "downloads": -1, "filename": "deptest-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a3d0734841fd385964472ef2ab0b5204", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7223, "upload_time": "2016-06-02T09:15:34", "url": "https://files.pythonhosted.org/packages/ba/02/4390988906c217745fbe94c3b41aaee15df2185d6029fb688b40775d2cff/deptest-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c8e82e5845f33b790c8f0ec005882f4e", "sha256": "6a4963a293efda418d23b82c7c564781008d1927ad6dca14f479d41434f805d4" }, "downloads": -1, "filename": "deptest-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "c8e82e5845f33b790c8f0ec005882f4e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12741, "upload_time": "2016-06-03T05:45:01", "url": "https://files.pythonhosted.org/packages/9c/2e/d56e8fc7f18a6d2adc3070d287b37c07e3a80f5c7e68ddf4ba2c09c439cc/deptest-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "503a0c4411f26f106b04d3ec45be3365", "sha256": "ae7139f3ff2bcdca8eeac56cce8b03c745d7e844fc7ad8940fd343606ed1ed01" }, "downloads": -1, "filename": "deptest-0.1.2.tar.gz", "has_sig": false, "md5_digest": "503a0c4411f26f106b04d3ec45be3365", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8049, "upload_time": "2016-06-03T05:44:55", "url": "https://files.pythonhosted.org/packages/e8/83/be83060cd53d70900677ad1342d52c5d18fb1d5e073dcb6a6ab2eca3b17e/deptest-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d86cd6a8869b34f711b774d01bba1e04", "sha256": "f3e602770845512ae2ded1ee0af6dc3e0102b1de821f8f2fd76cc042a392b80e" }, "downloads": -1, "filename": "deptest-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "d86cd6a8869b34f711b774d01bba1e04", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15468, "upload_time": "2016-06-11T05:58:40", "url": "https://files.pythonhosted.org/packages/13/4c/645505b2d1c3ee0b88a86588b8d895781fb6e407a0727c4fc5bee20b5767/deptest-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6ab46922d96d12bd610ea14c73466799", "sha256": "8861b12de55479413c1ab5dafc5114d7746382bae25ee6dd503c036f8e0ad568" }, "downloads": -1, "filename": "deptest-0.1.3.tar.gz", "has_sig": false, "md5_digest": "6ab46922d96d12bd610ea14c73466799", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9477, "upload_time": "2016-06-11T05:58:34", "url": "https://files.pythonhosted.org/packages/52/c7/54daeda67d41e1550ce425eb36d4cbfc8d9543dd76e10001f02274516f28/deptest-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f4632e25ba60c378b519dd80d4511f8d", "sha256": "4e801ae0b9e424e7b8332eb3a297197877847e5498d60f2691805af6b3b33f73" }, "downloads": -1, "filename": "deptest-0.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "f4632e25ba60c378b519dd80d4511f8d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17120, "upload_time": "2016-07-30T08:53:29", "url": "https://files.pythonhosted.org/packages/9e/b4/5adb33e5cde123d1b3fa1453fc903c3889e1724db6ffcc5cbb6cea462a13/deptest-0.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff107b70ee0e803b852a8e71afdfafba", "sha256": "6f7f39f91b6dfbedf20db632835051ea3233b8cc6968bcc9812a0de41cf93100" }, "downloads": -1, "filename": "deptest-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ff107b70ee0e803b852a8e71afdfafba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10644, "upload_time": "2016-07-30T08:53:27", "url": "https://files.pythonhosted.org/packages/6f/88/9886dae398aad9d66eac36b88f8b23c13a8c0e3cddb3ff229d5eceb9355f/deptest-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "ca97d86e1b8dbead4af07dafcdee995c", "sha256": "5eb832e1460a1f7aac0dc28c1d93173d95a9d1af3e920de73aa58ba357f5b88e" }, "downloads": -1, "filename": "deptest-0.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "ca97d86e1b8dbead4af07dafcdee995c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17210, "upload_time": "2016-07-30T09:03:45", "url": "https://files.pythonhosted.org/packages/69/75/4fca18ad8380dfc818c9aa5fe83c1527ec422c54367dc5ad9e7fa50578cb/deptest-0.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8761fabd20edf31287d49695a8fc0ef", "sha256": "a9d3b89e6216b790a1b5ea709d60c018419c05a4d0aabf7f5ef38b0f2e442562" }, "downloads": -1, "filename": "deptest-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a8761fabd20edf31287d49695a8fc0ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10715, "upload_time": "2016-07-30T09:03:42", "url": "https://files.pythonhosted.org/packages/62/b5/092e9a26ff718abefbd361e90ada6413dffb99aaf63fdb624493fc657577/deptest-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c192be88ea4a29a19ffcfe2c782640c7", "sha256": "d8134f3b1f12c4a8bc7b2e3f1b72628d9e65c0dc48dccf9dffcd798d2d2874eb" }, "downloads": -1, "filename": "deptest-0.1.6-py2-none-any.whl", "has_sig": false, "md5_digest": "c192be88ea4a29a19ffcfe2c782640c7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17411, "upload_time": "2016-08-01T07:16:16", "url": "https://files.pythonhosted.org/packages/ca/dd/c19f860641feb8e025ff8400336c49926ff8aeae18b180469f74c8daa638/deptest-0.1.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aba1bd5d3b4e5fbcbef37e1433100f78", "sha256": "0054364337490091881f6920a1b22e31092f5d0c0bd7fd41c389e9aeca9b21f3" }, "downloads": -1, "filename": "deptest-0.1.6.tar.gz", "has_sig": false, "md5_digest": "aba1bd5d3b4e5fbcbef37e1433100f78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10966, "upload_time": "2016-08-01T07:16:13", "url": "https://files.pythonhosted.org/packages/3e/16/182a405f3a3ae710b3126a43174069cfe08f41da77f764c47114e05b9d2c/deptest-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "0652cbf5df89b3e3191bb07ba357daab", "sha256": "51106eada828830e7ee725cdfe82238e52b27b5edd479cd1d22258212b86ea26" }, "downloads": -1, "filename": "deptest-0.1.7-py2-none-any.whl", "has_sig": false, "md5_digest": "0652cbf5df89b3e3191bb07ba357daab", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17411, "upload_time": "2016-08-01T07:25:50", "url": "https://files.pythonhosted.org/packages/7f/33/aaef7287eaeda2c5af1e78891380a778beec4df322cbfece4869fd43956b/deptest-0.1.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aafa5e91d80906bcdc7228c335780fe9", "sha256": "b87b2addd070640883038ab9a68f9b6188f5224af90bb301cb9bdb44ea0c1a7a" }, "downloads": -1, "filename": "deptest-0.1.7.tar.gz", "has_sig": false, "md5_digest": "aafa5e91d80906bcdc7228c335780fe9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10973, "upload_time": "2016-08-01T07:25:47", "url": "https://files.pythonhosted.org/packages/40/51/6afe8cf3d6d7abc480e8871cd0c6bbf175ec51509a22d2af46a450644059/deptest-0.1.7.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d852c63112adec303c3959a0458b14d9", "sha256": "567e4a2a5fafc2c3af07d8c72eea94caf288db3b61d3b7451271773d992bcc51" }, "downloads": -1, "filename": "deptest-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d852c63112adec303c3959a0458b14d9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17910, "upload_time": "2017-08-02T09:57:16", "url": "https://files.pythonhosted.org/packages/98/48/3c3171f311635b24e8375642f6122aba6ebf9cd407f52153985d3eea76fb/deptest-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e07036553cc7495251cb673bc386c9f", "sha256": "d6d493bf271f1ddb8119928b3d49eddcb9ccbfbd124ddc43ebd65456bccee1c5" }, "downloads": -1, "filename": "deptest-0.2.1.tar.gz", "has_sig": false, "md5_digest": "5e07036553cc7495251cb673bc386c9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11415, "upload_time": "2017-08-02T09:57:13", "url": "https://files.pythonhosted.org/packages/36/e7/1d701b803b94c254410720eb6d8bb6093bb931e7d1d57982ef04ef5985a9/deptest-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d852c63112adec303c3959a0458b14d9", "sha256": "567e4a2a5fafc2c3af07d8c72eea94caf288db3b61d3b7451271773d992bcc51" }, "downloads": -1, "filename": "deptest-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d852c63112adec303c3959a0458b14d9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17910, "upload_time": "2017-08-02T09:57:16", "url": "https://files.pythonhosted.org/packages/98/48/3c3171f311635b24e8375642f6122aba6ebf9cd407f52153985d3eea76fb/deptest-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e07036553cc7495251cb673bc386c9f", "sha256": "d6d493bf271f1ddb8119928b3d49eddcb9ccbfbd124ddc43ebd65456bccee1c5" }, "downloads": -1, "filename": "deptest-0.2.1.tar.gz", "has_sig": false, "md5_digest": "5e07036553cc7495251cb673bc386c9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11415, "upload_time": "2017-08-02T09:57:13", "url": "https://files.pythonhosted.org/packages/36/e7/1d701b803b94c254410720eb6d8bb6093bb931e7d1d57982ef04ef5985a9/deptest-0.2.1.tar.gz" } ] }