Should-DSL: Improve readability for should-style expectations
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs tests using string diff fixed Jul 23, 2012
CONTRIBUTORS added hrsalles to CONTRIBUTORS Dec 9, 2010
INSTALL updated INSTALL doc Aug 2, 2010
README.rst added to be installed if no setuptools is installed and u… Jun 15, 2010 allows running specific tests from command line Jul 8, 2011 bump version to 2.1.2 Nov 1, 2012
tox.ini added continous integration build script Aug 3, 2010


Should-DSL: Improve readability for should-style expectations

The goal of Should-DSL is to write should expectations in Python as clear and readable as possible, using "almost" natural language (limited - sometimes - by the Python language constraints).

In order to use this DSL, you need to import should and should_not objects from should_dsl module.

For example:

>>> from should_dsl import should

>>> 1 |should| equal_to(1)
>>> 'should' |should| include('oul')
>>> 3 |should| be_into([0, 1, 2])
Traceback (most recent call last):
ShouldNotSatisfied: 3 is not into [0, 1, 2]

The equal_to matcher verifies object equality. If you want to ensure identity, you must use be as matcher:

>>> 2 |should| be(2)

A nice example of exceptions would be:

>>> def raise_zerodivisionerror():
...     return 1/0
>>> raise_zerodivisionerror |should| throw(ZeroDivisionError)

should has a negative version: should_not:

>>> from should_dsl import should_not

>>> 2 |should_not| be_into([1, 3, 5])
>>> 'should' |should_not| include('oul')
Traceback (most recent call last):
ShouldNotSatisfied: 'should' does include 'oul'