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.
Permalink
Failed to load latest commit information.
docs tests using string diff fixed Jul 23, 2012
should_dsl
.gitignore
CONTRIBUTORS added hrsalles to CONTRIBUTORS Dec 9, 2010
INSTALL updated INSTALL doc Aug 2, 2010
LICENSE
MANIFEST.in
Makefile
README.rst
ez_setup.py added ez_setup.py to be installed if no setuptools is installed and u… Jun 15, 2010
run_all_examples.py
run_examples.py allows running specific tests from command line Jul 8, 2011
setup.py bump version to 2.1.2 Nov 1, 2012
tox.ini added continous integration build script Aug 3, 2010

README.rst

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'