{ "info": { "author": "drm from melp.nl, packaged for reuse by James Pic", "author_email": "jamespic@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Disclaimer:\n===========\n**This is a only a clone of unittest-data-provider (https://pypi.org/project/unittest-data-provider/) with the last version of https://github.com/yourlabs/unittest-data-provider (package maintener didn't update project on Pypi and I haven't had any answer from him to my request).**\n\nPackage for this snippet:\nhttp://melp.nl/2011/02/phpunit-style-dataprovider-in-python-unit-test/\n\nInstall::\n\n pip install unittest-dataprovider\n\nImport::\n\n import unittest\n from unittest_dataprovider import data_provider\n\nYou can then use data_provider without having to stick this snippet somewhere\n...\n\nThanks drm !\n\nOriginal blog post by drm pasted here in case the original link goes down\n=========================================================================\n\nPHPUnit has a handy feature with which you can provide testdata to your tests.\nThis is called a data provider, and is implemented by annotating a test with\n@dataProvider methodName. Python\u2019s unittest module doesn\u2019t seem to have such a\nfeature.\n\nPHPUnit\u2019s version\n-----------------\n\nThe data provider returns a two-dimensional array of test arguments. For\nexample::\n\n class CssParserTest extends PHPUnit_Framework_TestCase {\n function setUp() {\n $this->parser = new CssParser();\n }\n \n /**\n * @dataProvider cssColors\n */\n function testParseColor($color, $notation) {\n $this->assertEquals($color, $this->parser->parseColor($notation));\n }\n \n \n function cssColors() {\n return array(\n array(array(0, 0, 0), '#000'),\n array(array(0, 0, 0), '#000000'),\n array(array(0, 0, 0), 'rgb(0, 0, 0)')\n array(array(0, 0, 0), 'black')\n );\n }\n }\n\nRunning this test would call the testParseColor() test 4 times, with each of\nthe arrays returned by cssColors() as the arguments.\n\nPython: providing test data using a decorator\n---------------------------------------------\n\nWhile writing tests for some Python code, I discovered that Python\u2019s unittest\ndoesn\u2019t seem to have such a feature. So I implemented my own, using a\ndecorator::\n\n def data_provider(fn_data_provider):\n \"\"\"Data provider decorator, allows another callable to provide the data for the test\"\"\"\n def test_decorator(fn):\n def repl(self, *args):\n for i in fn_data_provider():\n try:\n fn(self, *i)\n except AssertionError:\n print \"Assertion error caught with data set \", i\n raise\n return repl\n return test_decorator\n\nExample usage::\n\n class CssParserTest:\n def setUp(self):\n self.parser = CssColor()\n \n @staticmethod\n def colors():\n return (\n ( (0, 0, 0), '#000' ),\n ( (0, 0, 0), '#000000' ),\n ( (0, 0, 0), 'rgb(0, 0, 0)' ),\n ( (0, 0, 0), 'black' )\n )\n \n @data_provider(colors):\n def test_parse_color(self, color, notation):\n self.assertEquals(color, self.parser.parse_color(notation))\n\nSuggestions of alternatives are greatly appreciated, by the way.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/l-vo/unittest-data-provider", "keywords": "unittest dataprovider", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "unittest-dataprovider", "package_url": "https://pypi.org/project/unittest-dataprovider/", "platform": "", "project_url": "https://pypi.org/project/unittest-dataprovider/", "project_urls": { "Homepage": "http://github.com/l-vo/unittest-data-provider" }, "release_url": "https://pypi.org/project/unittest-dataprovider/1.0.3/", "requires_dist": null, "requires_python": "", "summary": "PHPUnit-like @dataprovider decorator for unittest", "version": "1.0.3" }, "last_serial": 4826974, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "65cbce4e0a43542609daf6755ea4fe7a", "sha256": "370c2b8578c885dc8b602227926e694856b02de38ef1db8cea6315443f30d9bc" }, "downloads": -1, "filename": "unittest-dataprovider-1.0.2.tar.gz", "has_sig": false, "md5_digest": "65cbce4e0a43542609daf6755ea4fe7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3619, "upload_time": "2018-08-26T16:58:28", "url": "https://files.pythonhosted.org/packages/5c/31/a11f52d997f508d2e6f3c1686d4f87dc287e67a3035aafd17fdb03b45dfd/unittest-dataprovider-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "6706701120736083fab0edc4f13d8770", "sha256": "32a3fc7c36f7b4486a11e32b5d1e089793b8255e35e8531b4ad1ebb2f799270f" }, "downloads": -1, "filename": "unittest-dataprovider-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6706701120736083fab0edc4f13d8770", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3623, "upload_time": "2019-02-15T21:03:11", "url": "https://files.pythonhosted.org/packages/77/e8/b0f4f91438e596fcaad95111943bf1629bb3a28994de2e4e487c2c72ac4e/unittest-dataprovider-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6706701120736083fab0edc4f13d8770", "sha256": "32a3fc7c36f7b4486a11e32b5d1e089793b8255e35e8531b4ad1ebb2f799270f" }, "downloads": -1, "filename": "unittest-dataprovider-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6706701120736083fab0edc4f13d8770", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3623, "upload_time": "2019-02-15T21:03:11", "url": "https://files.pythonhosted.org/packages/77/e8/b0f4f91438e596fcaad95111943bf1629bb3a28994de2e4e487c2c72ac4e/unittest-dataprovider-1.0.3.tar.gz" } ] }