{ "info": { "author": "Horia Coman", "author_email": "horia141@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing" ], "description": "# TableTest3 [![Build Status](https://travis-ci.org/horia141/tabletest3.svg)](https://travis-ci.org/horia141/tabletest3) #\n\nUnit testing module for table-like test, for Python 3.\n\nFor Python 2, check out [TableTest](https://github.com/horia141/tabletest).\n\nMany unit tests, especially those for side-effect free functions, can be written like this:\n\n```python\nimport unittest\nclass FooTest(unittest.TestCase):\n TEST_CASES = [ case_1, case_2, ... ]\n def test_all(self):\n for test_case in TEST_CASES:\n do something with test_case\n```\n\nIf there are many test cases, they'll all appear as a single unit test in test runners. Furthermore,\nthe failure of one test will cause all others to fail. Finally, it might be hard to identify which\nof the tests actually fail.\n\nTableTest3 aims to solve this problem. Using it, we can rewrite the previous example as:\n\n```python\nimport tabletest\nclass FooTest(tabletest3.TableTestCase):\n TEST_CASES = [ case_1, case_2, ... ]\n @tabletest3.tabletest(TEST_CASES)\n def test_all(self, test_case):\n do something with test_case\n```\n\nWhen the testrunner will run this class, it will now find one test for each test case. Each test\nwill basically invoke `tabletest` with a single test case.\n\nThe setup functions like this:\n* You must define a `TEST_CASE` class variable which can be iterated as a sequence.\n* You must define a single argumet test function which does the testing required for each\n test case.\n* Each element of `TEST_CASE` generates a test function, called `test_all_{xx}`, for the previous\n example.\n* Iteration order is not guaranteed and should not be depended on.\n* All other `unittest.TestCase` behavior remains intact: `setUp` and `tearDown` methods, other test\n methods etc.\n* More than one test can be annotated with tabletests per test case.\n* However, the name must starst with `test_`, so it is picked up by the runner.\n\n## Installation ##\n\nInstallation is straightforward, via `pip`:\n\n```bash\npip install tabletest3\n```\n\n## Development ##\n\nWorking on this project is pretty much standard Python development. Perhaps the most novel aspect is the usage of the [Bazel][bazel] build system. At the moment, only a `py_library` and a `py_test` are defined as build rules. Nevertheless, tests are run through [Bazel][bazel] rather than through regular invocation. To run the tests use:\n\n```bash\nbazel test //:tabletest3_test\n```\n\nTo push a new version of the package to PyPi use:\n\n```bash\nbazel run //:tabletest3_upload -- --user=[pypi user] --pass=[pypi password]\n```\n\n## References ##\n\nSee [Tabletests][tabletests] and [How Tabletest Works][how-tabletest-works] for a longer introduction as well as a deep dive into the library.\n\n[tabletests]: https://horia141.github.com/jekyll/update/2015/08/31/tabletests.html\n[how-tabletest-works]: https://horia141.github.com/jekyll/update/2015/09/08/how-tabletest-works.html\n[bazel]: http://bazel.io", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/horia141/tabletest3", "keywords": "unittest test table testing", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "tabletest3", "package_url": "https://pypi.org/project/tabletest3/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tabletest3/", "project_urls": { "Homepage": "http://github.com/horia141/tabletest3" }, "release_url": "https://pypi.org/project/tabletest3/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "Unit testing module for table-like test, for Python 3.", "version": "1.1.0" }, "last_serial": 1757274, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f356d898a263db8edc1f750a19767aec", "sha256": "57e31796866d08c9faf908803ddea8ddf4247165efd7d3bf3cdfa6d2e417c220" }, "downloads": -1, "filename": "tabletest3-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f356d898a263db8edc1f750a19767aec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4926, "upload_time": "2015-08-29T18:23:34", "url": "https://files.pythonhosted.org/packages/8a/ee/3f1f5367944bdfca1092b3deab36b6ad3e362d20202a37702a3a163bcfdd/tabletest3-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5eea4cb082c4cd6b952ab347b1bf47c3", "sha256": "8719b5f3f722c1dadd1132cce78e391cabf2d6c5a7b489b8ce7a47b8134e3ca3" }, "downloads": -1, "filename": "tabletest3-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5eea4cb082c4cd6b952ab347b1bf47c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2564, "upload_time": "2015-08-29T18:23:38", "url": "https://files.pythonhosted.org/packages/68/58/1b98629adad9d4fc85cc2d8ec09e063b4ae7b43789622c81e96c75a0690b/tabletest3-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "a19150b8266af41e3c1a6c79068837a1", "sha256": "5f345a8791c482b1f75714f42c09850b0a007aff0def1eb12eb79cb19dc56c38" }, "downloads": -1, "filename": "tabletest3-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a19150b8266af41e3c1a6c79068837a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4934, "upload_time": "2015-08-30T14:51:43", "url": "https://files.pythonhosted.org/packages/ce/e6/bac9fd0c0f633fcee6155a9a201971cc5c863473e9fce79dba2a5900f8e5/tabletest3-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "810ff962f645d894a93384dd91a2964a", "sha256": "3fbda4adc0f9ddc06298ea89702fc37cde202f6e0b0d9de97275d9df22a3d79a" }, "downloads": -1, "filename": "tabletest3-0.0.2.tar.gz", "has_sig": false, "md5_digest": "810ff962f645d894a93384dd91a2964a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2594, "upload_time": "2015-08-30T14:51:47", "url": "https://files.pythonhosted.org/packages/07/55/a4066eedebb035c3c3c4ebe23f78408ba94a61715100c543c0a8dfb65bcf/tabletest3-0.0.2.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "35d5a46e864352d1876930f152b88e82", "sha256": "f161818e427101b02bc6f159a02f44c45d985cb244166038e67d5ecca18e2178" }, "downloads": -1, "filename": "tabletest3-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "35d5a46e864352d1876930f152b88e82", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5238, "upload_time": "2015-08-31T17:08:55", "url": "https://files.pythonhosted.org/packages/33/7e/f51cef9cf18080af75d774525d35b4d860a0e85d2eef5931d983303a14bd/tabletest3-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f81f26e00aef0fdb43cf940545aadbcc", "sha256": "20c2c9b34ad1b2f26c04f1a43cce8a09937526ebc9109f53610cf557932427c1" }, "downloads": -1, "filename": "tabletest3-1.0.2.tar.gz", "has_sig": false, "md5_digest": "f81f26e00aef0fdb43cf940545aadbcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2788, "upload_time": "2015-08-31T17:08:59", "url": "https://files.pythonhosted.org/packages/09/25/cb2776ff6855a6466e1472221dd059597b9b115ebe1026fdae4c1e8d1d02/tabletest3-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "244f9e6dd9c9eb3fd34e7ff6e709711c", "sha256": "fc83abc34b5814d70652d99461aafc2e1786c3505332e8644be66269634b0e27" }, "downloads": -1, "filename": "tabletest3-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "244f9e6dd9c9eb3fd34e7ff6e709711c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6109, "upload_time": "2015-09-18T14:54:56", "url": "https://files.pythonhosted.org/packages/94/b2/17d682ca1f355b651bf3c8ef98652f20b37ac9f7233094338cf530e98362/tabletest3-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "767298e87f59f6c328ea32a3e019173e", "sha256": "50be6bdd5e00e1c22210aed020f4db4d607bcf4a55f8c44c400d0a700f98f7a0" }, "downloads": -1, "filename": "tabletest3-1.0.3.tar.gz", "has_sig": false, "md5_digest": "767298e87f59f6c328ea32a3e019173e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3301, "upload_time": "2015-09-18T14:55:00", "url": "https://files.pythonhosted.org/packages/af/64/64833d37cd0887f9baa255fe5f3cdc726223a9442493f6089be7daf5f815/tabletest3-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "f660b042ee9556a0a1a38db0ae46707c", "sha256": "41ea896a13cc7f71d8424683616918d7e81b76a4adc917c1b1e085d432cdeb26" }, "downloads": -1, "filename": "tabletest3-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "f660b042ee9556a0a1a38db0ae46707c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6109, "upload_time": "2015-09-19T05:49:36", "url": "https://files.pythonhosted.org/packages/ed/d1/2ec6ed542a48527c209af27e24aaacfdec01f035286305130911c530855b/tabletest3-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f4264319c21bf34ee35ee05713a9fb7", "sha256": "463c483c2e8dcd4cf8dc64a35678ad6fec5ca36afc25403d7751850288f67b09" }, "downloads": -1, "filename": "tabletest3-1.0.4.tar.gz", "has_sig": false, "md5_digest": "2f4264319c21bf34ee35ee05713a9fb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3310, "upload_time": "2015-09-19T05:49:41", "url": "https://files.pythonhosted.org/packages/7d/34/aff5d55d8d06ad6c2a6d5edf9b8c126eda46f3f76c853cc6248842f8aeaa/tabletest3-1.0.4.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "f822e98fd234957b026567723040279e", "sha256": "359e31c67be2c26b3a9bc7c72ec2234a52545faf6ee63438a5813b14f98b4025" }, "downloads": -1, "filename": "tabletest3-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f822e98fd234957b026567723040279e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6154, "upload_time": "2015-10-07T21:19:59", "url": "https://files.pythonhosted.org/packages/d6/eb/7601f6bc6013d875cf16d04811b0262d499c5093a057bad3f359d749f8a6/tabletest3-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c298d8999fd5e15f6e384aacea8a4506", "sha256": "9dadffd45a9e2e9ee80377a463ac224665dbeb449648e4fdd4ab868339f2442b" }, "downloads": -1, "filename": "tabletest3-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c298d8999fd5e15f6e384aacea8a4506", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3348, "upload_time": "2015-10-07T21:20:12", "url": "https://files.pythonhosted.org/packages/95/16/6a4c0f094f909991f79906b651c6654ddf975894092024ff21c4e64db4d7/tabletest3-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f822e98fd234957b026567723040279e", "sha256": "359e31c67be2c26b3a9bc7c72ec2234a52545faf6ee63438a5813b14f98b4025" }, "downloads": -1, "filename": "tabletest3-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f822e98fd234957b026567723040279e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6154, "upload_time": "2015-10-07T21:19:59", "url": "https://files.pythonhosted.org/packages/d6/eb/7601f6bc6013d875cf16d04811b0262d499c5093a057bad3f359d749f8a6/tabletest3-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c298d8999fd5e15f6e384aacea8a4506", "sha256": "9dadffd45a9e2e9ee80377a463ac224665dbeb449648e4fdd4ab868339f2442b" }, "downloads": -1, "filename": "tabletest3-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c298d8999fd5e15f6e384aacea8a4506", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3348, "upload_time": "2015-10-07T21:20:12", "url": "https://files.pythonhosted.org/packages/95/16/6a4c0f094f909991f79906b651c6654ddf975894092024ff21c4e64db4d7/tabletest3-1.1.0.tar.gz" } ] }