michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: Sentinel — Mock 1.0.0 documentation michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0: michael@0:
michael@0:
michael@0:
michael@0:
michael@0: michael@0:
michael@0:

Sentinel

michael@0:
michael@0:
michael@0: sentinel
michael@0:

The sentinel object provides a convenient way of providing unique michael@0: objects for your tests.

michael@0:

Attributes are created on demand when you access them by name. Accessing michael@0: the same attribute will always return the same object. The objects michael@0: returned have a sensible repr so that test failure messages are readable.

michael@0:
michael@0: michael@0:
michael@0:
michael@0: DEFAULT
michael@0:

The DEFAULT object is a pre-created sentinel (actually michael@0: sentinel.DEFAULT). It can be used by side_effect michael@0: functions to indicate that the normal return value should be used.

michael@0:
michael@0: michael@0:
michael@0:

Sentinel Example

michael@0:

Sometimes when testing you need to test that a specific object is passed as an michael@0: argument to another method, or returned. It can be common to create named michael@0: sentinel objects to test this. sentinel provides a convenient way of michael@0: creating and testing the identity of objects like this.

michael@0:

In this example we monkey patch method to return michael@0: sentinel.some_object:

michael@0:
>>> real = ProductionClass()
michael@0: >>> real.method = Mock(name="method")
michael@0: >>> real.method.return_value = sentinel.some_object
michael@0: >>> result = real.method()
michael@0: >>> assert result is sentinel.some_object
michael@0: >>> sentinel.some_object
michael@0: sentinel.some_object
michael@0: 
michael@0:
michael@0:
michael@0:
michael@0: michael@0: michael@0:
michael@0:
michael@0:
michael@0:
michael@0:
michael@0:

Table Of Contents

michael@0: michael@0: michael@0:

Previous topic

michael@0:

Helpers

michael@0:

Next topic

michael@0:

Mocking Magic Methods

michael@0:

This Page

michael@0: michael@0: michael@0: michael@0:
michael@0:
michael@0:
michael@0:
michael@0: michael@0: michael@0: michael@0: