Skip to content

srittau/python-asserts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

295a131 · Oct 6, 2020
Oct 6, 2020
Oct 19, 2019
Oct 19, 2019
Feb 21, 2014
Oct 6, 2020
Oct 24, 2019
Oct 19, 2019
Mar 23, 2019
Oct 5, 2020
Mar 23, 2019
Oct 6, 2020
Oct 19, 2019

Repository files navigation

Python Asserts

License PyPI - Python Version GitHub pypi Travis CI

Stand-alone Assertions for Python

This package provides a few advantages over the assertions provided by unittest.TestCase:

  • Can be used stand-alone, for example:
    • In test cases, not derived from TestCase.
    • In fake and mock classes.
    • In implementations as rich alternative to the assert statement.
  • PEP 8 compliance.
  • Custom stand-alone assertions can be written easily.
  • Arguably a better separation of concerns, since TestCase is responsible for test running only, if assertion functions are used exclusively.

There are a few regressions compared to assertions from TestCase:

  • The default assertion class (AssertionError) can not be overwritten. This is rarely a problem in practice.
  • asserts does not support the addTypeEqualityFunc() functionality.

Usage:

>>> from asserts import assert_true, assert_equal, assert_raises
>>> my_var = 13
>>> assert_equal(13, my_var)
>>> assert_true(True, msg="custom failure message")
>>> with assert_raises(KeyError):
...     raise KeyError()

Failure messages can be customized:

>>> assert_equal(13, 14, msg_fmt="{got} is wrong, expected {expected}")
Traceback (most recent call last):
  ...
AssertionError: 14 is wrong, expected 13