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.

pypm install van.testing

How to install van.testing

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install van.testing
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
3.0.0 Available View build log
Windows (64-bit)
3.0.0 Available View build log
Mac OS X (10.5+)
3.0.0 Available View build log
Linux (32-bit)
3.0.0 Available View build log
Linux (64-bit)
3.0.0 Available View build log
ZPL 2.1
Lastest release
version 3.0.0 on Jan 5th, 2011

van.testing provides tools for testing zope3/WSGI based applications that do not use the ZODB or local utilities.

Testing Utilities

The most common use of this testing module is functional testing zope applications. It provides tools to setup layers which load the configuration ZCML as well as setting up wsgi_intercept in a layer.

This test is part of such a layer (setup in van.testing.tests.FunctionalLayer):

>>> from wsgi_intercept import WSGI_HTTPConnection as HTTPConnection
>>> conn = HTTPConnection('localhost', 80)
>>> conn.request('GET', '/')
>>> r = conn.getresponse()
>>> print r.read() # doctest: +ELLIPSIS
{'HTTP_ACCEPT_ENCODING': 'identity',
'HTTP_HOST': 'localhost',
'PATH_INFO': '/',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '80',
'wsgi.errors': <cStringIO.StringO object at ...>,
'wsgi.input': <cStringIO.StringI object at ...>,
'wsgi.multiprocess': 0,
'wsgi.multithread': 0,
'wsgi.run_once': 0,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
Marker: MARKER


Some basic layers useful for making test setups.

>>> import os.path
>>> from van.testing.layer import zcml_layer, null_layer

A zcml layer which sets up and tears down a zcml test harness (but is much simpler than that provided with zope.app.functional):

>>> class ZCMLLayer:
...     zcml = os.path.join(os.path.dirname(__file__), 'ftesting.zcml')
>>> zcml_layer(ZCMLLayer)

Some default layers are provided for use with zope.testing, a "null" layer that specifically does nothing. This is useful for layers which inherit from other layers but where you don't want setup/teardown functions run twice (is this a zope.testing bug?):

>>> class ExampleNullLayer(ZCMLLayer):
...     pass
>>> null_layer(ExampleNullLayer)

This test runs in the layer van.testing.tests.ZCMLLayer, so we can get the "test" utility but not the test_extra utility (see zcml_features.txt for an example of a zcml layer with features):

>>> from zope.interface import Interface
>>> from zope.component import queryUtility
>>> queryUtility(Interface, name="test", default='None')
>>> queryUtility(Interface, name="test_extra", default='None')

3.0.0 (2009-10-28)

  • Add an option to have a zcml_features attribute on a zcml layer indicating

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

Bullet list ends without a blank line; unexpected unindent.

the features to load when loading the zcml.

2.0.1 (2009-04-07)

  • Allow users to specify the domain and port of the wsgi_intercept_layer by

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

Bullet list ends without a blank line; unexpected unindent.

adding those attributes to the class. - Fix testbrowser support a bit so that it performs more like zope.testbrowser.testing.Browser. - Remove support for local component registrys (zope.site). This brings in the whole ZODB as zope.site's tests currently depend on it.

2.0.0 (2009-04-01)

  • Remove dependencies by using zope.configuration.xmlconfig to setup zcml

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

Bullet list ends without a blank line; unexpected unindent.

rather than zope.app.appsetup. This leaves out some security configuration but the win from less dependencies is massive. In my tests, no tests had any issues with this. - Add a wsgi_intercept layer and a functional_layer that combines both zcml and wsgi_intercept layer.

1.0.0 (2008-11-21)

  • 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.