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/test/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.11.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

pytest_subtests-0.11.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pytest-subtests-0.11.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for pytest-subtests-0.11.0.tar.gz
Algorithm Hash digest
SHA256 51865c88457545f51fb72011942f0a3c6901ee9e24cbfb6d1b9dc1348bafbe37
MD5 0d4b392d23edc3b2743b6ea987b8b28b
BLAKE2b-256 f389ba24ce1d1224e92901e1ceb2a3b45c2296cb71951f6fd50b7755e21a455f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytest_subtests-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 453389984952eec85ab0ce0c4f026337153df79587048271c7fd0f49119c07e4
MD5 87efdebc18cc3d4833924bad4b555a27
BLAKE2b-256 8a9850ac2d1344b0c43b81f886171e5ecf51a27fd02b32f787862f76fd7779dc

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