Skip to main content

Soft assertions for Python

Project description

Build Status PyPI version

smart-assertions

Soft assertions for Python

Installation

    pip install smart-assertions

Usage

Assertion is performed immediately after the call soft_assert(), but the expected result is obtained only after the call verify_expectations()

Quick example:

    from  smart_assertions import soft_assert, verify_expectations

    def test_something():
        soft_assert(1 == 1)
        soft_assert(2 > 1, 'Message if test failed')
        soft_assert('one' != 'two', 'Some message')
        verify_expectations()

You can use asserts in loop:

    from  smart_assertions import soft_assert, verify_expectations

    def test_asserts_in_loop():
        for number in range(1, 10):
            soft_assert(number % 2 == 0, '{} is not a multiple of 2'.format(number))
        verify_expectations()

Also you can use it with pytest parametrized tests:

    import pytest
    from  smart_assertions import soft_assert, verify_expectations

    @pytest.mark.parametrize("number", list(range(1, 10)))
    def test_pytest_example(number):
        soft_assert(number % 2 == 0)
        verify_expectations()

Example of output:

    AssertionError: Failed conditions count: [ 4 ]

    1. Exception: Custom message if test failed
    Fail in "/Users/nromanov/Documents/smart-assertions/unittest_example.py:28" test_mixed()

    2. Exception: Lists not equals
    Fail in "/Users/nromanov/Documents/smart-assertions/unittest_example.py:30" test_mixed()

    3. Exception: Your custom message; 4 < 5!
    Fail in "/Users/nromanov/Documents/smart-assertions/unittest_example.py:32" test_mixed()

    4. Exception: one != two
    Fail in "/Users/nromanov/Documents/smart-assertions/unittest_example.py:34" test_mixed()

More examples you can find in unittest_example.py

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

smart-assertions-1.0.2.tar.gz (2.2 kB view details)

Uploaded Source

Built Distribution

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

smart_assertions-1.0.2-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file smart-assertions-1.0.2.tar.gz.

File metadata

  • Download URL: smart-assertions-1.0.2.tar.gz
  • Upload date:
  • Size: 2.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.0

File hashes

Hashes for smart-assertions-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8806bd3c5bca825b4a62ba46a66b08eb4f2b584e128e5b37aeaa4a3eb93a8809
MD5 3297f6baae6646ad62253e16fb30020f
BLAKE2b-256 1ca43dcf9b3f974c6619e808723928f415384e5d4634cfcd0fc319699e5d3810

See more details on using hashes here.

File details

Details for the file smart_assertions-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: smart_assertions-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.0

File hashes

Hashes for smart_assertions-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d605b55caf41acd5f255b9518c518ac0d79b92d6371baab3f58db43fd0131be3
MD5 035f6ffb4cdd301d709d531228dfe5de
BLAKE2b-256 26054892f1eaa7bc2c5bf8003bea460a31acb7014632f84819720cd30a339ac1

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 Pingdom Monitoring Sentry Error logging StatusPage Status page