Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Should-DSL: Improve readability for should-style expectations
Python
Tree: ded0323344
Failed to load latest commit information.
docs
should_dsl better error handling on matcher change
.gitignore the docs added are the ones available at http://should-dsl.appspot.com
CONTRIBUTORS added hrsalles to CONTRIBUTORS
INSTALL updated INSTALL doc
LICENSE adding mit license
MANIFEST.in added *.py to be included here
Makefile
README.rst
ez_setup.py added ez_setup.py to be installed if no setuptools is installed and u…
run_all_examples.py run_all_examples compatible to py3k
run_examples.py allows running specific tests from command line
setup.py
tox.ini

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'
Something went wrong with that request. Please try again.