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
Note: earlier i used
assert_that
keyword fromassertpy
but i felt like it's copying from other library , so i changedassert_that
tocheck
, while reading this gives same amount of experience but saved 6 chars!
Installation
pip install simple-assertions
Usage
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(1).is_instance_of(int)
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(1).is_instance_of(int)
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(1).is_instance_of(int)
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
Built Distribution
File details
Details for the file simple-assertions-0.3.0.tar.gz
.
File metadata
- Download URL: simple-assertions-0.3.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6529fa4f2ee30ab79622707dea80a10b3271f605b9cd3ae13264b28afa2c19ad |
|
MD5 | 19f93b840531c1a8e8211c317e388c3b |
|
BLAKE2b-256 | bfb6d8e954614af1e259cd503db20310c43d7d9e71a0eab7f215842cf7ecda83 |
File details
Details for the file simple_assertions-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: simple_assertions-0.3.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 440e07ea07f0ac82fb922986247cea9d1cd25282c9633c8e17798f6fcb34d7c9 |
|
MD5 | 19f5e20e33f3fd45c27ab3bf04273c30 |
|
BLAKE2b-256 | 4cbd7de60b2fa4fd805d07152a67451283a6cc63413841d346652c3895e73d4b |