Skip to main content

Doublex Expects

Latest version License Number of PyPI downloads https://secure.travis-ci.org/jaimegildesagredo/doublex-expects.svg?branch=master

Doublex-Expects is a matchers library for the Expects assertion library. It provides matchers for the Doublex test double library.

Usage

Just import the expect callable and the Doublex-Expects matchers and start writing assertions for test doubles.

Spies

from expects import expect
from doublex_expects import *
from doublex import Spy

my_spy = Spy()

my_spy.method()

expect(my_spy.method).to(have_been_called)

Mocks

from expects import expect
from doublex_expects import *
from doublex import Mock

with Mock() as my_mock:
    my_mock.reset()
    my_mock.add(1)

my_mock.reset()
my_mock.add(1)

expect(my_mock).to(have_been_satisfied)

Matchers

have_been_called

Asserts that a spy has been called.

expect(my_spy.method).to(have_been_called)
expect(my_spy.method).not_to(have_been_called)

have_been_called_with

Asserts that a spy has been called with given arguments.

expect(my_spy.method).to(have_been_called_with('foo', key='bar'))
expect(my_spy.method).to(have_been_called_with(a(str), key=match('\w+')))
expect(my_spy.method).to(have_been_called_with(anything, key='bar'))
expect(my_spy.method).to(have_been_called_with('foo', any_arg))
expect(my_spy.method).not_to(have_been_called_with('bar', key='foo'))

Times called modifiers

once

Asserts that a spy has been called exactly once.

expect(my_spy.method).to(have_been_called.once)
expect(my_spy.method).to(have_been_called_with('foo').once)
expect(my_spy.method).not_to(have_been_called.once)

twice

Asserts that a spy has been called exactly twice.

expect(my_spy.method).to(have_been_called.twice)
expect(my_spy.method).to(have_been_called_with('foo').twice)
expect(my_spy.method).not_to(have_been_called.twice)

exactly

Asserts that a spy has been called exactly n times.

expect(my_spy.method).to(have_been_called.exactly(3))
expect(my_spy.method).to(have_been_called_with('foo').exactly(3))
expect(my_spy.method).not_to(have_been_called.exactly(3))

max

Asserts that a spy has been called maximum of n times.

expect(my_spy.method).to(have_been_called.max(2))
expect(my_spy.method).to(have_been_called_with('foo').max(2))
expect(my_spy.method).not_to(have_been_called.max(2))

min

Asserts that a spy has been called minimum of n times.

expect(my_spy.method).to(have_been_called.min(2))
expect(my_spy.method).to(have_been_called_with('foo').min(2))
expect(my_spy.method).not_to(have_been_called.min(2))

have_been_satisfied

Verifies that a mock calls have been satisfied.

expect(my_mock).to(have_been_satisfied)
expect(my_mock).not_to(have_been_satisfied)

have_been_satisfied_in_any_order

Verifies that a mock calls have been satisfied regardless of the execution order.

expect(my_mock).to(have_been_satisfied_in_any_order)
expect(my_mock).not_to(have_been_satisfied_in_any_order)

Installation

You can install the last stable release from PyPI using pip or easy_install.

$ pip install doublex-expects

Also you can install the latest sources from Github.

$ pip install -e git+git://github.com/jaimegildesagredo/doublex-expects.git#egg=doublex-expects

Specs

To run the specs you should install the testing requirements and then run mamba.

$ python setup.py develop
$ pip install -r test-requirements.txt
$ mamba

Metadata

Release files for doublex-expects 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for doublex-expects 0.7.1
File Size Uploaded
doublex-expects-0.7.1.tar.gz 6.6 kB Details

Release files / doublex-expects-0.7.1.tar.gz

Download URL doublex-expects-0.7.1.tar.gz
Size 6.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8040682d97f0a66f632c5df982f78d09aee36b2c4a1eb275b0c596d115f200aa
BLAKE2b-256 checksum
How to use checksums
cee8677f10ca523396283343a478265fbeb84e12a84406f5e6ec8b3b7d448982
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.7

Release history Release notifications | RSS feed

This release

0.7.1 This release

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page