Assertion library (skeleton) inspired from `assertpy` but without batteries
Project description
simple-assertions
Assertion library (skeleton) inspired from assertpy
but without batteries! also allows to convert all
the assertions to warnings, just like delayed asserts.
Motivation
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.
- 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 withassert_that(.., as_warn=True)
- I added
- Extending is possible but i wanted more intuitive logic
- I exposed the
SimpleAssertions
class, and just inherit it to add new method
- I exposed the
assert_that
inassertpy
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
- By exposing the
Installation
pip install simple-assertions
Usage
Please check tests
files for more usage here is only basic usage
As Function
Just import the assert_that
function, and away you go...
from simple_assertions import assert_that
def test_something():
assert_that(4 + 10).is_equal_to(14)
assert_that(1).is_instance_of(int)
assert_that(3, "lucky_num", as_warn=True).is_equal_to(4)
As instance
from simple_assertions import SimpleAssertions
class YourTestClass:
def __init__(self):
self.assert_that = SimpleAssertions().assert_that
def test_something(self):
self.assert_that(4 + 10).is_equal_to(14)
self.assert_that(1).is_instance_of(int)
self.assert_that(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.error(self.generate_err_msg(other, "to be greater than"))
return self
class YourTestClass:
def __init__(self):
self.assert_that = YourAssertions().assert_that
def test_something(self):
self.assert_that(4 + 10).is_greater_than(10).is_equal_to(14)
self.assert_that(1).is_instance_of(int)
self.assert_that(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
Built Distribution
Close
Hashes for simple_assertions-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f5a7244ba1269005c1b7b3a44115cefcecfaaa90d424bf803813baef838aebc |
|
MD5 | e824f281f6df5edef13c2080bd397e00 |
|
BLAKE2b-256 | 7bf85ca498fdb87600f6d179b419052664c097799b28c4acfa075c14ed1d54bc |