Skip to main content

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.

Build Status

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.

  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!

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

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

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for simple-assertions-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6529fa4f2ee30ab79622707dea80a10b3271f605b9cd3ae13264b28afa2c19ad
MD5 19f93b840531c1a8e8211c317e388c3b
BLAKE2b-256 bfb6d8e954614af1e259cd503db20310c43d7d9e71a0eab7f215842cf7ecda83

See more details on using hashes here.

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

Hashes for simple_assertions-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 440e07ea07f0ac82fb922986247cea9d1cd25282c9633c8e17798f6fcb34d7c9
MD5 19f5e20e33f3fd45c27ab3bf04273c30
BLAKE2b-256 4cbd7de60b2fa4fd805d07152a67451283a6cc63413841d346652c3895e73d4b

See more details on using hashes here.

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