Skip to main content

Terse mock expectations for Python and Mock

Project description

# expect

Inspired by [RSpec's test doubles][2] and [Expecter Gadget][3].

Uses [Mock][1] but provides a terser syntax for expectations.

Example:

```python
>>> def assert_equal(lhs, rhs):
... assert lhs == rhs
>>> from expect import new_expect
>>> expect = new_expect(__eq__=assert_equal)
>>> expect(2) == 2
>>> expect(2) == 3
Traceback (most recent call last):
...
AssertionError

>>> class MyClass(object):
... @classmethod
... def my_method(cls, arg):
... pass

>>> # Stubs don't have to be called.
>>> expect(MyClass).stub('my_method').with_(1).and_return(2)
>>> MyClass.my_method(1)
2
>>> expect.reset()

>>> # Mocks
>>> expect(MyClass).should_receive('my_method').with_(1).and_return(2)
>>> expect.verify()
Traceback (most recent call last):
...
AssertionError: Expected to be called once. Called 0 times.

```

[1]: http://www.voidspace.org.uk/python/mock/
[2]: https://github.com/rspec/rspec-mocks
[3]: https://github.com/garybernhardt/expecter

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page