Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install plone.mocktestcase

How to install plone.mocktestcase

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install plone.mocktestcase
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
1.0b3 Available View build log
Windows (64-bit)
1.0b3 Available View build log
Mac OS X (10.5+)
1.0b3 Available View build log
Linux (32-bit)
1.0b3 Available View build log
Linux (64-bit)
1.0b3 Available View build log
 
Author
License
LGPL
Dependencies
Lastest release
version 1.0b3 on Jan 5th, 2011

Introduction

This package contains a unittest test class based on the one from the Mocker mock library (http://labix.org/mocker).

This class provides support for registering Zope 3 components (utilities, adapters, subscription adapters and event handlers) from mocks and tearing down the global component registry during test tear-down.

There are also a few convenience methods and parameter checkers that are useful to Zope and Plone testing.

Please see the Mocker documentation for more detail:

http://labix.org/mocker

A test case that mocks a utility may look like this:

System Message: WARNING/2 (<string>, line 20)

Literal block expected; none found.

from plone.mocktestcase import MockTestCase

from my.package.interfaces import IMyInterface from my.package.foo import testable_method

class MyTestCase(MockTestCase):

def test_something(self):

utility_mock = self.mocker.mock() self.expect(utility_mock.do_something()).result("foo") self.mock_utility(utility_mock, IMyInterface)

# Put mocker into replay mode self.replay()

# Verify that testable_method() looks up a utility for # IMyInterface and calls do_something() on it, which returns # "foo".

testable_method()

The following helper methods are available:

self.replay() Puts the mock into replay mode.

self.create_dummy(**kw) Return a dummy object that is not a mock object, just a dumb object with whatever attributes or methods you pass as keyword arguments. To make a dummy method, pass a function object or a lambda, e.g. self.create_dummy(id="foo", absolute_url=lambda:'http://example.org/foo')

System Message: WARNING/2 (<string>, line 47); backlink

Inline strong start-string without end-string.

self.mock_utility(mock, provides, name=u"") Register the given mock object as a global utility providing the given interface, with the given name (defaults to the unnamed default utility).

self.mock_adapter(mock, provides, adapts, name=u"") Register the given mock object as a global adapter providing the given interface and adapting the given interfaces, with the given name (defaults to the unnamed default adapter).

self.mock_subscription_adapter(mock, provides, adapts) Register the given mock object as a global subscription adapter providing the given interface and adapting the given interfaces.

self.mock_handler(mock, adapts) Register the given mock object as a global event subscriber for the given event types.

self.mock_tool(mock, name) Create a getToolByName() mock (using 'replace' mode) and configure it so that code calling getToolByName(context, name) obtains the given mock object. Can be used multiple times: the getToolByName() mock is created lazily the first time this method is called in any one test fixture.

self.match_provides(interface) A custom matcher that can be used to check whether an argument to a mock call provides the given interface. Uses interface.providedBy(arg).

self.match_type(type) A custom matcher that can be used to check whether an argument to a mock call is if the given type. Uses isinstance(arg, type).

Changelog

1.0b3
  • Added mock_tool() helper.
1.0b2
  • Minor amendments to mock Zope 3 component support
1.0b1
  • Initial release

Subscribe to package updates

Last updated Jan 5th, 2011

Download Stats

Last month:1

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.