Predicate matchersΒΆ

Predicate matchers work with boolean methods and attributes, aiming to give to users more freedom to write more readable specifications.

Should-DSL supports predicate matchers on attributes:

>>> from should_dsl import should
>>> class Foo(object):
...     def __init__(self, is_valid):
...         self.valid = is_valid
>>> Foo(is_valid=True) |should| be_valid

And on methods:

>>> class Person(object):
...    def __init__(self, money_in_wallet):
...        self._money_in_wallet = money_in_wallet
...    def rich(self):
...        return self._money_in_wallet > 10000
...
>>> john = Person(money_in_wallet=999999999)
>>> john |should| be_rich


>>> class House(object):
...     def __init__(self, kind):
...         self._kind = kind
...     def made_of(self, kind):
...         return self._kind.upper() == kind.upper()
>>> house = House('Wood')
>>> house |should| be_made_of('wood')
>>> house |should| be_made_of('stone')
Traceback (most recent call last):
...
ShouldNotSatisfied: expected made_of('stone') to return True, got False

Powered by

Previous topic

Should-DSL Matchers

Next topic

Custom Matchers

This Page