123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- Metadata-Version: 2.1
- Name: pytest-metadata
- Version: 1.7.0
- Summary: pytest plugin for test session metadata
- Home-page: https://github.com/pytest-dev/pytest-metadata
- Author: Dave Hunt
- Author-email: dhunt@mozilla.com
- License: Mozilla Public License 2.0 (MPL 2.0)
- Keywords: py.test pytest metadata
- Platform: UNKNOWN
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Framework :: Pytest
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
- Classifier: Operating System :: POSIX
- Classifier: Operating System :: Microsoft :: Windows
- Classifier: Operating System :: MacOS :: MacOS X
- Classifier: Topic :: Software Development :: Quality Assurance
- Classifier: Topic :: Software Development :: Testing
- Classifier: Topic :: Utilities
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3.6
- Requires-Dist: pytest (>=2.9.0)
- pytest-metadata
- ===============
- pytest-metadata is a plugin for `pytest <http://pytest.org>`_ that provides
- access to test session metadata.
- .. image:: https://img.shields.io/badge/license-MPL%202.0-blue.svg
- :target: https://github.com/pytest-dev/pytest-metadata/blob/master/LICENSE
- :alt: License
- .. image:: https://img.shields.io/pypi/v/pytest-metadata.svg
- :target: https://pypi.python.org/pypi/pytest-metadata/
- :alt: PyPI
- .. image:: https://img.shields.io/travis/pytest-dev/pytest-metadata.svg
- :target: https://travis-ci.org/pytest-dev/pytest-metadata/
- :alt: Travis
- .. image:: https://img.shields.io/github/issues-raw/pytest-dev/pytest-metadata.svg
- :target: https://github.com/pytest-dev/pytest-metadata/issues
- :alt: Issues
- .. image:: https://img.shields.io/requires/github/pytest-dev/pytest-metadata.svg
- :target: https://requires.io/github/pytest-dev/pytest-metadata/requirements/?branch=master
- :alt: Requirements
- Requirements
- ------------
- You will need the following prerequisites in order to use pytest-metadata:
- - Python 2.7, 3.6, PyPy, or PyPy3
- Installation
- ------------
- To install pytest-metadata:
- .. code-block:: bash
- $ pip install pytest-metadata
- Available metadata
- ------------------
- The following metadata is gathered by this plugin:
- ======== =============== ===================================
- Key Description Example
- ======== =============== ===================================
- Python Python version 3.6.4
- Platform Platform Darwin-17.4.0-x86_64-i386-64bit
- Packages pytest packages {'py': '1.5.2', 'pytest': '3.4.1'}
- Plugins pytest plugins {'metadata': '1.6.0'}
- ======== =============== ===================================
- Additional metadata
- -------------------
- You can provide your own metadata (key, value pair) by specifying ``--metadata`` on the commandline::
- pytest --metadata foo bar
- Note: You can provide multiple sets of ``--metadata``::
- pytest --metadata foo bar --metadata baz zoo
- Continuous integration
- ----------------------
- When run in a continuous integration environment, additional metadata is added
- from environment variables. Below is a list of the supported continuous
- integration providers, along with links to the environment variables that are
- added to metadata if they're present.
- * `AppVeyor <https://www.appveyor.com/docs/environment-variables/>`_
- * `CircleCI <https://circleci.com/docs/1.0/environment-variables/>`_
- * `GitLab CI <http://docs.gitlab.com/ce/ci/variables/README.html>`_
- * `Jenkins <https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables>`_
- * `TaskCluster <https://docs.taskcluster.net/reference/workers/docker-worker/environment>`_
- * `Travis CI <https://docs.travis-ci.com/user/environment-variables/>`_
- Note that if you're using `Tox <http://tox.readthedocs.io/>`_ to run your tests
- then you will need to `pass down any additional environment variables <http://tox.readthedocs.io/en/latest/example/basic.html#passing-down-environment-variables>`_
- for these to be picked up.
- Viewing metadata
- ----------------
- If you pass ``--verbose`` on the command line when running your tests, then the
- metadata will be displayed in the terminal report header::
- pytest --verbose
- ============================ test session starts ============================
- platform darwin -- Python 3.6.4, pytest-3.4.1, py-1.5.2, pluggy-0.6.0 -- /usr/bin/python
- cachedir: .pytest_cache
- metadata: {'Python': '3.6.4', 'Platform': 'Darwin-17.4.0-x86_64-i386-64bit', 'Packages': {'pytest': '3.4.1', 'py': '1.5.2', 'pluggy': '0.6.0'}, 'Plugins': {'metadata': '1.6.0'}}
- plugins: metadata-1.6.0
- Accessing metadata
- ------------------
- To add/modify/delete metadata at the end of metadata collection, you can use the `pytest_metadata` hook:
- .. code-block:: python
- import pytest
- @pytest.mark.optionalhook
- def pytest_metadata(metadata):
- for key in metadata.keys():
- if "password" in key.lower():
- del metadata[key]
- To access the metadata from a test or fixture, you can use the `metadata`
- fixture:
- .. code-block:: python
- def test_metadata(metadata):
- assert 'metadata' in metadata['Plugins']
- To access the metadata from a plugin, you can use the `_metadata` attribute of
- the `config` object. This can be used to read/add/modify the metadata:
- .. code-block:: python
- def pytest_configure(config):
- if hasattr(config, '_metadata'):
- config._metadata['foo'] = 'bar'
- Plugin integrations
- -------------------
- Here's a handy list of plugins that either read or contribute to the metadata:
- * `pytest-base-url <https://pypi.python.org/pypi/pytest-base-url/>`_ - Adds the
- base URL to the metadata.
- * `pytest-html <https://pypi.python.org/pypi/pytest-html/>`_ - Displays the
- metadata at the start of each report.
- * `pytest-selenium <https://pypi.python.org/pypi/pytest-selenium/>`_ - Adds the
- driver, capabilities, and remote server to the metadata.
- Resources
- ---------
- - `Release Notes <http://github.com/davehunt/pytest-metadata/blob/master/CHANGES.rst>`_
- - `Issue Tracker <http://github.com/davehunt/pytest-metadata/issues>`_
- - `Code <http://github.com/davehunt/pytest-metadata/>`_
|