# Pytest Verbose Parametrize
Pytest parametrize hook to generate ids for parametrized tests that are a little
more descriptive than the default (which just outputs id numbers).
## Installation
Install with your favourite package manager, and this plugin will automatically be enabled:
```bash
pip install pytest-verbose-parametrize
# or ..
easy_install pytest-verbose-parametrize
```
## Usage
```python
import pytest
@pytest.mark.parametrize(('f', 't'), [(sum, list), (len, int)])
def test_foo(f, t):
assert isinstance(f([[1], [2]]), t)
```
In this example, the test ids will be generated as `test_foo[sum-list]`,
`test_foo[len-int]` instead of the default `test_foo[1-2]`, `test_foo[3-4]`.
```bash
$ py.test -v
============================= test session starts ======================================
platform linux2 -- Python 2.7.3 -- py-1.4.25 -- pytest-2.6.4
plugins: verbose-parametrize
collected 2 items
unit/test_example.py::test_foo[sum-list] FAILED
unit/test_example.py::test_foo[len-int] PASSED
```
## Changelog
### 1.8.0 (2024-10-??)
* All: Drop support for Python 2 and <3.6, removing compatibility code.
* All: Use stdlib unittest.mock instead of mock package.
* All: Removed usage of path.py and path in favour of pathlib. #174 #224
* pytest-devpi-server: Run devpi-init for initialisation. #179
* pytest-server-fixtures: BREAKING CHANGE: Removed RethinkDB support, as the project is no longer maintained.
* pytest-server-fixtures: Allowed passing through HTTP headers to the server. #149
* pytest-server-fixtures: Fixed threading log debug messages. #146
* pytest-server-fixtures: Removed usage of deprecated Thread.setDaemon. #202
* pytest-server-fixtures: Explicitly close initial Mongo client. #198
* pytest-server-fixtures: Don't use context manager for CREATE DATABASE #186
* pytest-shutil: Removed contextlib2 requirement. #144
* pytest-shutil: Fixed forcing color through termcolor. #217
* pytest-shutil: Replaced deprecated imp module #219
* pytest-profiling: Added support to hide/show the full path of file. #95
* pytest-profiling: Fixed SVG file generation on Windows. #93
* pytest-profiling: Remove pinning of more-itertools. #194
* pytest-profiling: Add support to define element number for print_stats() #96
* pytest-profiling: Fix mock in test_writes_summary #223
* pytest-virtualenv: Modernised package. #188 #185 #182 #163
* pytest-virtualenv: Fixed virtualenv creation on Windows. #142
* pytest-virtualenv: Added delete_workspace parameter to VirtualEnv. #195
* pytest-virtualenv: Removed extras_require. #240
* ci: Remove usage of deprecated distutils. #189
* ci: Disabled jenkins server tests on CircleCI to improve build time.
* ci: Fixed `collections` import for py 3.11 compatibility #222
### 1.7.1 (2019-05-28)
* pytest-profiling: Fix pytest-profiling to profile fixtures. #48
* pytest-devpi-server: Fixed Python 3.4 support updating "ruamel.yaml" requirements. #138
* ci: Added PYTEST_DONT_REWRITE in order to suppress module already imported. #123
### 1.7.0 (2019-02-21)
* All: Support pytest >= 4.0.0
* All: Support Python 3.7
* pytest-server-fixtures: if host not defined on your machine, default to localhost
* pytest-server-fixture: Pin to rethinkdb < 2.4.0 due to upstream API changes
* pytest-verbose-parametrize: Add support for revamped marker infrastructure
* pytest-verbose-parametrize: Fix integration tests to support pytest >= 4.1.0
* pytest-virtualenv: Add virtualenv as install requirement. Fixes #122
* pytest-webdriver: Fix RemovedInPytest4Warning using getfixturevalue
* circleci: Fix checks by skipping coverall submission for developer without push access
* wheels: Generate universal wheels installable with both python 2.x and 3.x
* dist: Remove support for building and distributing *.egg files
* VagrantFile: Install python 3.7 and initialize python 3.7 by default
* Fix DeprecationWarning warnings using "logger.warning()" function
### 1.6.2 (2019-02-21)
* pytest-server-fixtures: suppress stacktrace if kill() is called
* pytest-server-fixtures: fix random port logic in TestServerV2
### 1.6.1 (2019-02-12)
* pytest-server-fixtures: fix exception when attempting to access hostname while server is not started
### 1.6.0 (2019-02-12)
* pytest-server-fixtures: added previously removed TestServerV2.kill() function
* pytest-profiling: pin more-itertools==5.0.0 in integration tests, as that's a PY3 only release
### 1.5.1 (2019-01-24)
* pytest-verbose-parametrize: fixed unicode parameters when using `@pytest.mark.parametrize`
### 1.5.0 (2019-01-23)
* pytest-server-fixtures: made postgres fixtures and its tests optional, like all other fixtures
* pytest-server-fixtures: reverted a fix for pymongo deprecation warning, as this will break compatibility with pymongo 3.6.0
* pytest-server-fixtures: dropped RHEL5 support in httpd
### 1.4.1 (2019-01-18)
* pytest-server-fixtures: server fixture binary path specified in ENV now only affect server class 'thread'
### 1.4.0 (2019-01-15)
* Fixing python 3 compatibility in Simple HTTP Server fixture
* Fixed broken tests in pytest-profiling
* Pinned pytest<4.0.0 until all deprecation warnings are fixed.
* pytest-webdriver: replaced deprecated phantomjs with headless Google Chrome.
* Add Vagrantfile to project to make test environment portable.
* Add .editorconfig file to project.
* pytest-server-fixtures: add TestServerV2 with Docker and Kubernetes support.
* pytest-server-fixtures: fix for an issue where MinioServer is not cleaned up after use.
* pytest-server-fixtures: fix deprecation warnings when calling pymongo.
* pytest-server-fixtures: close pymongo client on MongoTestServer teardown.
* pytest-server-fixtures: upgrade Mongo, Redis and RethinkDB to TestServerV2.
* coveralls: fix broken coveralls
### 1.3.1 (2018-06-28)
* Use pymongo list_database_names() instead of the deprecated database_names(), added pymongo>=3.6.0 dependency
### 1.3.0 (2017-11-17)
* Fixed workspace deletion when teardown is None
* Fixed squash of root logger in pytest-listener
* Added S3 Minio fixture (many thanks to Gavin Bisesi)
* Added Postgres fixture (many thanks to Gavin Bisesi)
* Use requests for server fixtures http gets as it handles redirects and proxies properly
### 1.2.12 (2017-8-1)
* Fixed regression on cacheing ephemeral hostname, some clients were relying on this. This is now optional.
### 1.2.11 (2017-7-21)
* Fix for OSX binding to illegal local IP range (Thanks to Gavin Bisesi)
* Setup and Py3k fixes for pytest-profiling (Thanks to xoviat)
* We no longer try and bind port 5000 when reserving a local IP host, as someone could have bound it to 0.0.0.0
* Fix for #46 sourcing gprof2dot when the local venv has not been activated
### 1.2.10 (2017-2-23)
* Handle custom Pytest test items in pytest-webdriver
### 1.2.9 (2017-2-23)
* Add username into mongo server fixture tempdir path to stop collisions on shared multiuser filesystems
### 1.2.8 (2017-2-21)
* Return function results in shutil.run.run_as_main
### 1.2.7 (2017-2-20)
* More handling for older versions of path.py
* Allow virtualenv argument passing in pytest-virtualenv
### 1.2.6 (2017-2-16 )
* Updated devpi server server setup for devpi-server >= 2.0
* Improvements for random port picking
* HTTPD server now binds to 0.0.0.0 by default to aid Selenium-style testing
* Updated mongodb server args for mongodb >= 3.2
* Corrections for mongodb fixture config and improve startup logic
* Added module-scoped mongodb fixture
* Handling for older versions of path.py
* Fix for #40 where tests that chdir break pytest-profiling
### 1.2.5 (2016-12-09)
* Improvements for server runner host and port generation, now supports random local IPs
* Bugfix for RethinkDB fixture config
### 1.2.4 (2016-11-14)
* Bugfix for pymongo extra dependency
* Windows compatibility fix for pytest-virtualenv (Thanks to Jean-Christophe Fillion-Robin for PR)
* Fix symlink handling for pytest-shutil.cmdline.get_real_python_executable
### 1.2.3 (2016-11-7)
* Improve resiliency of Mongo fixture startup checks
### 1.2.2 (2016-10-27)
* Python 3 compatibility across most of the modules
* Fixed deprecated Path.py imports (Thanks to Bryan Moscon)
* Fixed deprecated multicall in pytest-profiling (Thanks to Paul van der Linden for PR)
* Added devpi-server fixture to create an index per test function
* Added missing licence file
* Split up httpd server fixture config so child classes can override loaded modules easier
* Added 'preserve_sys_path' argument to TestServer base class which exports the current python sys.path to subprocesses.
* Updated httpd, redis and jenkins runtime args and paths to current Ubuntu spec
* Ignore errors when tearing down workspaces to avoid race conditions in 'shutil.rmtree' implementation
### 1.2.1 (2016-3-1)
* Fixed pytest-verbose-parametrize for latest version of py.test
### 1.2.0 (2016-2-19)
* New plugin: git repository fixture
### 1.1.1 (2016-2-16)
* pytest-profiling improvement: escape illegal characters in .prof files (Thanks to Aarni Koskela for the PR)
### 1.1.0 (2016-2-15)
* New plugin: devpi server fixture
* pytest-profiling improvement: overly-long .prof files are saved as the short hash of the test name (Thanks to Vladimir Lagunov for PR)
* Changed default behavior of workspace.run() to not use a subshell for security reasons
* Corrected virtualenv.run() method to handle arguments the same as the parent method workspace.run()
* Removed deprecated '--distribute' from virtualenv args
### 1.0.1 (2015-12-23)
* Packaging bugfix
### 1.0.0 (2015-12-21)
* Initial public release
Raw data
{
"_id": null,
"home_page": "https://github.com/man-group/pytest-plugins",
"name": "pytest-verbose-parametrize",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Edward Easton",
"author_email": "eeaston@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/9d/04/9713cccf4747da196f5fb40942f60f710b285ac02775738b82aed3c75d04/pytest-verbose-parametrize-1.8.0.tar.gz",
"platform": "unix",
"description": "# Pytest Verbose Parametrize\n\nPytest parametrize hook to generate ids for parametrized tests that are a little\nmore descriptive than the default (which just outputs id numbers).\n\n## Installation\n\nInstall with your favourite package manager, and this plugin will automatically be enabled:\n```bash\npip install pytest-verbose-parametrize\n# or .. \neasy_install pytest-verbose-parametrize\n```\n## Usage\n\n```python\nimport pytest\n\n@pytest.mark.parametrize(('f', 't'), [(sum, list), (len, int)])\ndef test_foo(f, t):\n assert isinstance(f([[1], [2]]), t)\n```\n\nIn this example, the test ids will be generated as `test_foo[sum-list]`,\n`test_foo[len-int]` instead of the default `test_foo[1-2]`, `test_foo[3-4]`.\n\n```bash\n$ py.test -v \n============================= test session starts ======================================\nplatform linux2 -- Python 2.7.3 -- py-1.4.25 -- pytest-2.6.4 \nplugins: verbose-parametrize\ncollected 2 items \n\nunit/test_example.py::test_foo[sum-list] FAILED\nunit/test_example.py::test_foo[len-int] PASSED\n```\n\n\n## Changelog\n### 1.8.0 (2024-10-??)\n * All: Drop support for Python 2 and <3.6, removing compatibility code.\n * All: Use stdlib unittest.mock instead of mock package.\n * All: Removed usage of path.py and path in favour of pathlib. #174 #224\n * pytest-devpi-server: Run devpi-init for initialisation. #179\n * pytest-server-fixtures: BREAKING CHANGE: Removed RethinkDB support, as the project is no longer maintained.\n * pytest-server-fixtures: Allowed passing through HTTP headers to the server. #149\n * pytest-server-fixtures: Fixed threading log debug messages. #146\n * pytest-server-fixtures: Removed usage of deprecated Thread.setDaemon. #202\n * pytest-server-fixtures: Explicitly close initial Mongo client. #198\n * pytest-server-fixtures: Don't use context manager for CREATE DATABASE #186\n * pytest-shutil: Removed contextlib2 requirement. #144\n * pytest-shutil: Fixed forcing color through termcolor. #217\n * pytest-shutil: Replaced deprecated imp module #219\n * pytest-profiling: Added support to hide/show the full path of file. #95\n * pytest-profiling: Fixed SVG file generation on Windows. #93\n * pytest-profiling: Remove pinning of more-itertools. #194\n * pytest-profiling: Add support to define element number for print_stats() #96\n * pytest-profiling: Fix mock in test_writes_summary #223\n * pytest-virtualenv: Modernised package. #188 #185 #182 #163\n * pytest-virtualenv: Fixed virtualenv creation on Windows. #142\n * pytest-virtualenv: Added delete_workspace parameter to VirtualEnv. #195\n * pytest-virtualenv: Removed extras_require. #240\n * ci: Remove usage of deprecated distutils. #189\n * ci: Disabled jenkins server tests on CircleCI to improve build time.\n * ci: Fixed `collections` import for py 3.11 compatibility #222\n\n\n### 1.7.1 (2019-05-28)\n* pytest-profiling: Fix pytest-profiling to profile fixtures. #48\n* pytest-devpi-server: Fixed Python 3.4 support updating \"ruamel.yaml\" requirements. #138\n* ci: Added PYTEST_DONT_REWRITE in order to suppress module already imported. #123\n\n\n### 1.7.0 (2019-02-21)\n * All: Support pytest >= 4.0.0\n * All: Support Python 3.7\n * pytest-server-fixtures: if host not defined on your machine, default to localhost\n * pytest-server-fixture: Pin to rethinkdb < 2.4.0 due to upstream API changes\n * pytest-verbose-parametrize: Add support for revamped marker infrastructure\n * pytest-verbose-parametrize: Fix integration tests to support pytest >= 4.1.0\n * pytest-virtualenv: Add virtualenv as install requirement. Fixes #122\n * pytest-webdriver: Fix RemovedInPytest4Warning using getfixturevalue\n * circleci: Fix checks by skipping coverall submission for developer without push access\n * wheels: Generate universal wheels installable with both python 2.x and 3.x\n * dist: Remove support for building and distributing *.egg files\n * VagrantFile: Install python 3.7 and initialize python 3.7 by default\n * Fix DeprecationWarning warnings using \"logger.warning()\" function\n\n### 1.6.2 (2019-02-21)\n * pytest-server-fixtures: suppress stacktrace if kill() is called\n * pytest-server-fixtures: fix random port logic in TestServerV2\n\n### 1.6.1 (2019-02-12)\n * pytest-server-fixtures: fix exception when attempting to access hostname while server is not started\n\n### 1.6.0 (2019-02-12)\n * pytest-server-fixtures: added previously removed TestServerV2.kill() function\n * pytest-profiling: pin more-itertools==5.0.0 in integration tests, as that's a PY3 only release\n\n### 1.5.1 (2019-01-24)\n * pytest-verbose-parametrize: fixed unicode parameters when using `@pytest.mark.parametrize`\n\n### 1.5.0 (2019-01-23)\n * pytest-server-fixtures: made postgres fixtures and its tests optional, like all other fixtures\n * pytest-server-fixtures: reverted a fix for pymongo deprecation warning, as this will break compatibility with pymongo 3.6.0\n * pytest-server-fixtures: dropped RHEL5 support in httpd\n\n### 1.4.1 (2019-01-18)\n * pytest-server-fixtures: server fixture binary path specified in ENV now only affect server class 'thread'\n\n### 1.4.0 (2019-01-15)\n * Fixing python 3 compatibility in Simple HTTP Server fixture\n * Fixed broken tests in pytest-profiling\n * Pinned pytest<4.0.0 until all deprecation warnings are fixed.\n * pytest-webdriver: replaced deprecated phantomjs with headless Google Chrome.\n * Add Vagrantfile to project to make test environment portable.\n * Add .editorconfig file to project.\n * pytest-server-fixtures: add TestServerV2 with Docker and Kubernetes support.\n * pytest-server-fixtures: fix for an issue where MinioServer is not cleaned up after use.\n * pytest-server-fixtures: fix deprecation warnings when calling pymongo.\n * pytest-server-fixtures: close pymongo client on MongoTestServer teardown.\n * pytest-server-fixtures: upgrade Mongo, Redis and RethinkDB to TestServerV2.\n * coveralls: fix broken coveralls\n\n### 1.3.1 (2018-06-28)\n * Use pymongo list_database_names() instead of the deprecated database_names(), added pymongo>=3.6.0 dependency\n\n### 1.3.0 (2017-11-17)\n * Fixed workspace deletion when teardown is None\n * Fixed squash of root logger in pytest-listener\n * Added S3 Minio fixture (many thanks to Gavin Bisesi)\n * Added Postgres fixture (many thanks to Gavin Bisesi)\n * Use requests for server fixtures http gets as it handles redirects and proxies properly\n\n### 1.2.12 (2017-8-1)\n * Fixed regression on cacheing ephemeral hostname, some clients were relying on this. This is now optional.\n\n### 1.2.11 (2017-7-21)\n * Fix for OSX binding to illegal local IP range (Thanks to Gavin Bisesi)\n * Setup and Py3k fixes for pytest-profiling (Thanks to xoviat)\n * We no longer try and bind port 5000 when reserving a local IP host, as someone could have bound it to 0.0.0.0\n * Fix for #46 sourcing gprof2dot when the local venv has not been activated\n\n### 1.2.10 (2017-2-23)\n * Handle custom Pytest test items in pytest-webdriver\n\n### 1.2.9 (2017-2-23)\n * Add username into mongo server fixture tempdir path to stop collisions on shared multiuser filesystems\n\n### 1.2.8 (2017-2-21)\n * Return function results in shutil.run.run_as_main\n\n### 1.2.7 (2017-2-20)\n * More handling for older versions of path.py\n * Allow virtualenv argument passing in pytest-virtualenv\n\n### 1.2.6 (2017-2-16 )\n * Updated devpi server server setup for devpi-server >= 2.0\n * Improvements for random port picking\n * HTTPD server now binds to 0.0.0.0 by default to aid Selenium-style testing\n * Updated mongodb server args for mongodb >= 3.2\n * Corrections for mongodb fixture config and improve startup logic\n * Added module-scoped mongodb fixture\n * Handling for older versions of path.py\n * Fix for #40 where tests that chdir break pytest-profiling\n\n### 1.2.5 (2016-12-09)\n * Improvements for server runner host and port generation, now supports random local IPs\n * Bugfix for RethinkDB fixture config\n\n### 1.2.4 (2016-11-14)\n * Bugfix for pymongo extra dependency\n * Windows compatibility fix for pytest-virtualenv (Thanks to Jean-Christophe Fillion-Robin for PR)\n * Fix symlink handling for pytest-shutil.cmdline.get_real_python_executable\n\n### 1.2.3 (2016-11-7)\n * Improve resiliency of Mongo fixture startup checks\n\n### 1.2.2 (2016-10-27)\n * Python 3 compatibility across most of the modules\n * Fixed deprecated Path.py imports (Thanks to Bryan Moscon)\n * Fixed deprecated multicall in pytest-profiling (Thanks to Paul van der Linden for PR)\n * Added devpi-server fixture to create an index per test function\n * Added missing licence file\n * Split up httpd server fixture config so child classes can override loaded modules easier\n * Added 'preserve_sys_path' argument to TestServer base class which exports the current python sys.path to subprocesses.\n * Updated httpd, redis and jenkins runtime args and paths to current Ubuntu spec\n * Ignore errors when tearing down workspaces to avoid race conditions in 'shutil.rmtree' implementation\n\n### 1.2.1 (2016-3-1)\n * Fixed pytest-verbose-parametrize for latest version of py.test\n\n### 1.2.0 (2016-2-19)\n * New plugin: git repository fixture\n\n### 1.1.1 (2016-2-16)\n * pytest-profiling improvement: escape illegal characters in .prof files (Thanks to Aarni Koskela for the PR)\n\n### 1.1.0 (2016-2-15)\n\n * New plugin: devpi server fixture\n * pytest-profiling improvement: overly-long .prof files are saved as the short hash of the test name (Thanks to Vladimir Lagunov for PR)\n * Changed default behavior of workspace.run() to not use a subshell for security reasons\n * Corrected virtualenv.run() method to handle arguments the same as the parent method workspace.run()\n * Removed deprecated '--distribute' from virtualenv args\n\n### 1.0.1 (2015-12-23)\n\n * Packaging bugfix\n\n### 1.0.0 (2015-12-21)\n\n * Initial public release\n\n\n\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "More descriptive output for parametrized py.test tests",
"version": "1.8.0",
"project_urls": {
"Homepage": "https://github.com/man-group/pytest-plugins"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "69698237743b1ddac5ed596e663e2ba9d24134c23b79c0b1eef95d754104d2f4",
"md5": "c313103cde9cdfa28cccef61ed682b31",
"sha256": "72eeb89619acceb63ea9b3a28944dd8ad5c0e53223b13f693416df2acf1cc69a"
},
"downloads": -1,
"filename": "pytest_verbose_parametrize-1.8.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c313103cde9cdfa28cccef61ed682b31",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 7276,
"upload_time": "2024-10-17T15:50:43",
"upload_time_iso_8601": "2024-10-17T15:50:43.578758Z",
"url": "https://files.pythonhosted.org/packages/69/69/8237743b1ddac5ed596e663e2ba9d24134c23b79c0b1eef95d754104d2f4/pytest_verbose_parametrize-1.8.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d049713cccf4747da196f5fb40942f60f710b285ac02775738b82aed3c75d04",
"md5": "6ba992785b030a5895dd9cc61c954fbb",
"sha256": "05dfd556c446159c366b88e196676321f48a6d92ad6465bae69758dd603db0a5"
},
"downloads": -1,
"filename": "pytest-verbose-parametrize-1.8.0.tar.gz",
"has_sig": false,
"md5_digest": "6ba992785b030a5895dd9cc61c954fbb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 30768,
"upload_time": "2024-10-17T15:50:55",
"upload_time_iso_8601": "2024-10-17T15:50:55.593824Z",
"url": "https://files.pythonhosted.org/packages/9d/04/9713cccf4747da196f5fb40942f60f710b285ac02775738b82aed3c75d04/pytest-verbose-parametrize-1.8.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-17 15:50:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "man-group",
"github_project": "pytest-plugins",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"circle": true,
"lcname": "pytest-verbose-parametrize"
}