Skip to main content

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': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'localhost',
 'SERVER_PORT': '80',
 'SERVER_PROTOCOL': 'HTTP/1.1\r\n',
 '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

Layers

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')
'MARKER'
>>> queryUtility(Interface, name="test_extra", default='None')
'None'

Changes

3.0.0 (2009-10-28)

  • Add an option to have a zcml_features attribute on a zcml layer indicating 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 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 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

Metadata

Release files for van.testing 3.0.0

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

Source distribution (sdist)

Source distribution for van.testing 3.0.0
File Size Uploaded Provenance Actions
van.testing-3.0.0.tar.gz 7.7 kB Without provenance Details for van.testing-3.0.0.tar.gz

Release files / van.testing-3.0.0.tar.gz

Download URL van.testing-3.0.0.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
04fd7a0a8413f89348705a7c3b573fe76ca18e0006f62967f33f602c646c17b1
BLAKE2b-256 checksum
How to use checksums
4d2e0270a1bb5a3c9661b7b3e6cb104064ceda02b43bd9de2e0887a374d2c421
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for van.testing 3.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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