Skip to main content

Assertion library (skeleton) inspired from `assertpy` but without batteries

Project description


Assertion library (skeleton) inspired from assertpy but without batteries! also allows to convert all the assertions to warnings, just like delayed asserts.

Build Status


assertpy is beautiful library but for my needs it's too much, i really loved the API of assertpy so i created new module because of following reasons

please check tests/test_*.py for use cases.

  1. I wanted assert_warn to be dynamic, i.e. given certain condition all assertions are converted to warning.
    • I added ASSERT_ERROR_AS_WARNING variable which can do that!
    • Modified assert_that API to make is call based with assert_that(.., as_warn=True)
  2. Extending is possible but i wanted more intuitive logic
    • I exposed the SimpleAssertions class, and just inherit it to add new method
  3. assert_that in assertpy creates new instance of class and loads all the extensions on every call, and i wanted to avoid that!
    • By exposing the SimpleAssertion class, you can just make it part of your assertion class

Note: earlier i used assert_that keyword from assertpy but i felt like it's copying from other library , so i changed assert_that to check, while reading this gives same amount of experience but saved 6 chars!


pip install simple-assertions


Please check tests files for more usage here is only basic usage

As Function

Just import the check function, and away you go...

from simple_assertions import check

def test_something():
    check(4 + 10).is_equal_to(14)
    check(3, "lucky_num", as_warn=True).is_equal_to(4)

As instance

from simple_assertions import SimpleAssertions

class YourTestClass:
    def __init__(self):
        self.check = SimpleAssertions().check

    def test_something(self):
        self.check(4 + 10).is_equal_to(14)
        self.check(3, "lucky_num", as_warn=True).is_equal_to(4)      

Add your own batteries

from simple_assertions import SimpleAssertions
from typing import Union

class YourAssertions(SimpleAssertions):
    def __init__(self, as_warn=False, logger=None):
        super().__init__(as_warn, logger)

    def is_greater_than(self, other: Union[int, float]):
        if self.val_to_chk.val < other:
            self.raise_err(self.compare_err_msg(other, "to be greater than"))
        return self

class YourTestClass:
    def __init__(self):
        self.check = YourAssertions().check

    def test_something(self):
        self.check(4 + 10).is_greater_than(10).is_equal_to(14)
        self.check(3, "lucky_num", as_warn=True).is_equal_to(4)      

Though only checked with unittests but it should work fine with pytest or Nose.

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

simple-assertions-0.3.0.tar.gz (4.7 kB view hashes)

Uploaded source

Built Distribution

simple_assertions-0.3.0-py3-none-any.whl (5.8 kB view hashes)

Uploaded py3

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