Skip to main content

unittest subTest() support and subtests fixture

Project description

unittest subTest() support and subtests fixture.

PyPI version https://img.shields.io/conda/vn/conda-forge/pytest-subtests.svg Python versions https://github.com/pytest-dev/pytest-subtests/workflows/build/badge.svg https://img.shields.io/badge/code%20style-black-000000.svg

This pytest plugin was generated with Cookiecutter along with @hackebrot’s cookiecutter-pytest-plugin template.

Features

  • Adds support for TestCase.subTest.

  • New subtests fixture, providing similar functionality for pure pytest tests.

Installation

You can install pytest-subtests via pip from PyPI:

$ pip install pytest-subtests

Usage

unittest subTest() example

import unittest


class T(unittest.TestCase):
    def test_foo(self):
        for i in range(5):
            with self.subTest("custom message", i=i):
                self.assertEqual(i % 2, 0)


if __name__ == "__main__":
    unittest.main()

Output

λ pytest .tmp\test-unit-subtest.py
======================== test session starts ========================
...
collected 1 item

.tmp\test-unit-subtest.py FF.                                  [100%]

============================= FAILURES ==============================
_________________ T.test_foo [custom message] (i=1) _________________

self = <test-unit-subtest.T testMethod=test_foo>

    def test_foo(self):
        for i in range(5):
            with self.subTest('custom message', i=i):
>               self.assertEqual(i % 2, 0)
E               AssertionError: 1 != 0

.tmp\test-unit-subtest.py:9: AssertionError
_________________ T.test_foo [custom message] (i=3) _________________

self = <test-unit-subtest.T testMethod=test_foo>

    def test_foo(self):
        for i in range(5):
            with self.subTest('custom message', i=i):
>               self.assertEqual(i % 2, 0)
E               AssertionError: 1 != 0

.tmp\test-unit-subtest.py:9: AssertionError
================ 2 failed, 1 passed in 0.07 seconds =================

subtests fixture example

def test(subtests):
    for i in range(5):
        with subtests.test(msg="custom message", i=i):
            assert i % 2 == 0

Output

λ pytest .tmp\test-subtest.py
======================== test session starts ========================
...
collected 1 item

.tmp\test-subtest.py .F.F..                                    [100%]

============================= FAILURES ==============================
____________________ test [custom message] (i=1) ____________________

    def test(subtests):
        for i in range(5):
            with subtests.test(msg='custom message', i=i):
>               assert i % 2 == 0
E               assert (1 % 2) == 0

.tmp\test-subtest.py:4: AssertionError
____________________ test [custom message] (i=3) ____________________

    def test(subtests):
        for i in range(5):
            with subtests.test(msg='custom message', i=i):
>               assert i % 2 == 0
E               assert (3 % 2) == 0

.tmp\test-subtest.py:4: AssertionError
================ 2 failed, 1 passed in 0.07 seconds =================

Contributing

Contributions are very welcome. Tests can be run with tox:

tox -e py37

License

Distributed under the terms of the MIT license, “pytest-subtests” is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.

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-subtests-0.9.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

pytest_subtests-0.9.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file pytest-subtests-0.9.0.tar.gz.

File metadata

  • Download URL: pytest-subtests-0.9.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for pytest-subtests-0.9.0.tar.gz
Algorithm Hash digest
SHA256 c0317cd5f6a5eb3e957e89dbe4fc3322a9afddba2db8414355ed2a2cb91a844e
MD5 d510f6b2944f8a2d89696a3c02ec5b63
BLAKE2b-256 bde8c722a2cca34404643d3baf50f1eab6f697c05271b5e0f733e3815dcaacfa

See more details on using hashes here.

File details

Details for the file pytest_subtests-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_subtests-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5f616b92c13405909d210569d6d3914db6fe156333ff5426534f97d5b447861
MD5 b1f7f1cf6ddeb918ecd20e367e1d4592
BLAKE2b-256 34232daf23a479976a725359ddf4791b948730749edb752e2c797f27eb14824b

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