A painless assertion and validation library for Python.
Project description
Verify is a painless assertion library for Python.
Links
Project: https://github.com/dgilland/verify
Documentation: http://verify.readthedocs.org
TravisCI: https://travis-ci.org/dgilland/verify
Quickstart
Install using pip:
pip install verify
Verify some value using multiple assertions:
from verify import expect, Not, Truthy, Falsy, Less, Greater
expect(5 * 5,
Truthy(),
Not(Falsy),
Greater(15),
Less(30))
Verify using your own assert functions:
def is_just_right(value):
assert value == 'just right', 'Not just right!'
# Passes
expect('just right', is_just_right)
# Fails
try:
expect('too cold', is_just_right)
expect AssertionError:
raise
NOTE: The assert function should return a truthy value, otherwise, expect will treat the falsy return from the function as an indication that it failed as subsequently raise it’s own AssertionError.
Or your own predicate functions:
def is_awesome(value):
return 'awesome' in value
def is_more_awesome(value):
return value > 'awesome'
expect('so awesome', is_awesome, is_more_awesome)
Or use chaining syntax:
expect(1).Truthy().Number().NotBoolean().Not(is_awesome)
But you don’t have to use expect since the verify assertions can also be used on their own:
import verify
# These would pass.
verify.Truthy(1)
verify.Equal(2, 2)
verify.Greater(3, 2)
# These would fail with an AssertionError
verify.Truthy(0)
verify.Equal(2, 3)
verify.Greater(2, 3)
And if you’d prefer to see assert being used, all verify assertions will return truthy if no AssertionError is raised:
assert Truthy(1)
assert expect(1, Truthy(), Number())
Validators
All of the validators in verify are callables that can be used in two contexts:
By themselves as in Equal(a, b) which will raise an AssertionError if false.
In combination with expect as in expect(a, Equal(b)) which could also raise an AssertionError.
The available validators are:
Validator |
Description |
---|---|
Not |
Assert that a callable doesn’t raise an AssertionError. |
Predicate |
Assert that predicate(a). |
Equal |
Assert that a == b. |
Match |
Assert that a matches regular expression b. |
Greater |
Assert that a > b. |
GreaterEqual |
Assert that a >= b. |
Less |
Assert that a < b. |
LessEqual |
Assert that a <= b. |
Between |
Assert that b <= a <= c. |
Length |
Assert that b <= len(a) <= c. |
Is |
Assert that a is b. |
IsTrue |
Assert that a is True. |
IsFalse |
Assert that a is False. |
IsNone |
Assert that a is None. |
All |
Assert that all of the list of predicates evaluate a as truthy. |
Any |
Assert that any of the list of predicates evaluate a as truthy. |
In |
Assert that a in b. |
Contains |
Assert that b in a. |
ContainsOnly |
Assert that values from b are the only ones contained in a. |
Subset |
Assert that a is a subset of b. |
Superset |
Assert that a is a superset of b. |
Unique |
Assert that a contains unique items. |
Type |
Assert that isinstance(a, b). |
Truthy |
Assert that bool(a). |
Falsy |
Assert that not bool(a). |
Boolean |
Assert that isinstance(a, bool). |
String |
Assert that isinstance(a, (str, unicode)). |
Dict |
Assert that isinstance(a, dict). |
List |
Assert that isinstance(a, list). |
Tuple |
Assert that isinstance(a, tuple). |
Int |
Assert that isinstance(a, int). |
Float |
Assert that isinstance(a, float). |
Number |
Assert that isinstance(a, (int, float, Decimal, long)). |
Positive |
Assert that a > 0. |
Negative |
Assert that a < 0. |
Even |
Assert that a % 2 == 0. |
Odd |
Assert that a % 2 != 1. |
Monotone |
Assert that a is monotonic with respect to b(). |
Increasing |
Assert that a is monotonically increasing. |
StrictlyIncreasing |
Assert that a is strictly increasing. |
Decreasing |
Assert that a is monotonically decreasing. |
StrictlyDecreasing |
Assert that a is strictly decreasing. |
Date |
Assert that isinstance(a, datetime.date). |
DateString |
Assert that a matches the datetime format string b. |
NotEqual |
Assert not Equal. |
NotMatch |
Assert not Match. |
NotBetween |
Assert not Between. |
IsNot |
Assert not Is. |
IsNotTrue |
Assert not IsTrue. |
IsNotFalse |
Assert not IsFalse. |
IsNotNone |
Assert not IsNone. |
NotAll |
Assert not All. |
NotAny |
Assert not Any. |
NotIn |
Assert not In. |
NotContains |
Assert not Contains. |
NotContainsOnly |
Assert not ContainsOnly. |
NotSubset |
Assert not Subset. |
NotSuperset |
Assert not Superset. |
NotUnique |
Assert not Unique. |
NotType |
Assert not Type. |
NotBoolean |
Assert not Boolean. |
NotString |
Assert not String. |
NotDict |
Assert not Dict. |
NotList |
Assert not List. |
NotTuple |
Assert not Tuple. |
NotDate |
Assert not Date. |
NotDateString |
Assert not DateString. |
NotInt |
Assert not Int. |
NotFloat |
Assert not Float. |
NotNumber |
Assert not Number. |
For more details, please see the full documentation at http://verify.readthedocs.org.
Project details
Release history Release notifications | RSS feed
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
Hashes for verify-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f77be6a7bc9b8826289e288d01c8f65666a621e41f65c24afeb9c75395a6741 |
|
MD5 | 484b5d9b92cd1b28dfbb8689c82119b0 |
|
BLAKE2b-256 | 773457b4f935ec1dc0d21cdb1b8b84e6efb942527e2e76d7bbade04350480432 |