Skip to main content

PyTest Plus Plugin :: extends pytest functionality

Project description

PyTest Plus Plugin :: extends pytest functionality

PyPI version Python versions CI Python Black Code Style

This plugin aims to be used to host multiple basic pytest extensions that meet the following criteria:

  • Downgrade gracefully, meaning that if the plugin is removed, you will still be able to run pytest

PYTEST_REQPASS

If you define environment variable PYTEST_REQPASS=123 and at the end of the testing the number of passed tests is not exactly 123, pytest will return exit code 1.

This feature is aimed for CI usage in order to prevent accidental skipping of some tests. We do expect users to define this variable within their own CI job definitions. The number of tests executed is likely to be dependent on the CI job.

We discourage defining this inside places like tox.ini because when a developer runs tests, they are likely to endup running a different number of tests. Also, this feature makes no sense if you try to mention a specific test.

Avoiding duplicate test function names

While pytest allows users to have the same test function names in different files, that makes it harder to identify and copy/paste the test name in order to reproduce the failure locally. That is why this plugin forces its users to avoid having the same function name anywhere in the tested project.

You can disable this check by defining PYTEST_CHECK_TEST_DUPLICATE=0.

Avoiding problematic test identifiers

This plugin will raise errors when it encounters test IDs that are either too long or that contain unsafe characters. While pytest is very flexible in allowing a wide range of test IDs, using these does make development harder as it prevents people from doing a copy/paste with failed test and pasting in in their terminal to reproduce the failed test locally.

You can disable regex check by defining PYTEST_CHECK_TEST_ID_REGEX=0.

You can disable the length check by defining PYTEST_MAX_TEST_ID_LENGTH=0.

Prepare pytest log files for collection on CI

As pytest log files are created on temp directory and some CI systems refuse to collect files from outside the current project, we do copy these files inside $VIRTUAL_ENV/log, same directory used by tox itself. To collect the logs on Github Actions, you only need a step like:

- name: Archive logs
  uses: actions/upload-artifact@v4
  with:
    name: logs-${{ matrix.name }}.zip
    path: .tox/**/log/

Release process

Releases are triggered from GitHub Releases page.

Links

Project details


Download files

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

Source Distribution

pytest-plus-0.7.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

pytest_plus-0.7.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file pytest-plus-0.7.0.tar.gz.

File metadata

  • Download URL: pytest-plus-0.7.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pytest-plus-0.7.0.tar.gz
Algorithm Hash digest
SHA256 4e958161332d46dab8a2ce5f354e4c5e79508984b66605c5e789bf1220f1c669
MD5 9ed10cc25216c1a5892ae67f814c8591
BLAKE2b-256 dd34bd98b0ed6f3f35b583b5c57dfa1d9a3c21a8a2e7deb57756867a4eaf9e50

See more details on using hashes here.

File details

Details for the file pytest_plus-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: pytest_plus-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for pytest_plus-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d5a98ebfb83be4a73543af19e656917dc6f067e417df6a4afbe41e73ea47723
MD5 f36b0b132585046a8302fb7c68da8cb6
BLAKE2b-256 458fcce3979d5a9dc85348d55d2c2ead7a12b269cefcf021cf1e2fd5b6d77e6b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page