Metadata-Version: 2.1
Name: asserts
Version: 0.13.1
Summary: Stand-alone Assertions
Home-page: https://github.com/srittau/python-asserts
License: MIT
Author: Sebastian Rittau
Author-email: srittau@rittau.biz
Requires-Python: >=3.8.1
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Requires-Dist: typing-extensions (>=4.10.0,<5.0.0)
Project-URL: Bug Tracker, https://github.com/srittau/python-asserts/issues
Project-URL: Changes, https://github.com/srittau/python-asserts/blob/main/CHANGELOG.md
Project-URL: GitHub, https://github.com/srittau/python-asserts
Project-URL: Repository, https://github.com/srittau/python-asserts
Description-Content-Type: text/markdown

# Python Asserts

[![License](https://img.shields.io/pypi/l/asserts.svg)](https://pypi.python.org/pypi/asserts/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/asserts)](https://pypi.python.org/pypi/asserts/)
[![GitHub](https://img.shields.io/github/release/srittau/python-asserts/all.svg)](https://github.com/srittau/python-asserts/releases/)
[![pypi](https://img.shields.io/pypi/v/asserts.svg)](https://pypi.python.org/pypi/asserts/)
[![GitHub Actions](https://img.shields.io/github/workflow/status/srittau/python-asserts/Test%20and%20lint)](https://github.com/srittau/python-asserts/actions/workflows/test-and-lint.yml)

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:

```python
>>> 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:

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

