Skip to main content

pytest-metadata is a plugin for pytest that provides access to test session metadata.

License PyPI https://img.shields.io/travis/pytest-dev/pytest-metadata.svg Travis Issues 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:

$ pip install pytest-metadata

Development

To contribute to pytest-metadata it helps to have Pipenv and pre-commit installed.

$ pipenv install --dev
$ pre-commit install

Running Tests

We use Tox to manage running tests against the supported Python versions.

$ pipenv run tox

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.

Note that if you’re using Tox to run your tests then you will need to pass down any additional 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:

import pytest
@pytest.mark.optionalhook
def pytest_metadata(metadata):
    metadata.pop("password", None)

To access the metadata from a test or fixture, you can use the metadata fixture:

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:

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:

Resources

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-metadata-1.8.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_metadata-1.8.0-py2.py3-none-any.whl (9.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pytest-metadata-1.8.0.tar.gz.

File metadata

  • Download URL: pytest-metadata-1.8.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for pytest-metadata-1.8.0.tar.gz
Algorithm Hash digest
SHA256 2071a59285de40d7541fde1eb9f1ddea1c9db165882df82781367471238b66ba
MD5 95674c2390b58e0138cabac5101d1908
BLAKE2b-256 1238eed3a1e00c765e4da61e4e833de41c3458cef5d18e819d09f0f160682993

See more details on using hashes here.

File details

Details for the file pytest_metadata-1.8.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pytest_metadata-1.8.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for pytest_metadata-1.8.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c29a1fb470424926c63154c1b632c02585f2ba4282932058a71d35295ff8c96d
MD5 349315811c24784fe0a6953376ca1479
BLAKE2b-256 ce8fd0542e1aa0e23d902ce6acce2790736473da94453a36bdc7829f25734199

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page