Skip to main content
Help us improve Python packaging – donate today!

WSGI application for the zope.publisher

Project Description

This package provides the WSGIPublisherApplication class which exposes the object publishing machinery in zope.publisher as a WSGI application. It also lets us bring up the Zope application server (parsing zope.conf and site.zcml) with a mere function call:

>>> db ='zope.conf')

This is especially useful for debugging.

To bring up Zope and obtain the WSGI application object at the same time, use the getWSGIApplication function.

This package also provides an easy to use application factory for PasteDeploy. You can simply specify an application configuration like this in your Paste configuration file:

use =
config_file = %(here)s/zope.conf

Look for more documentation inside the package itself.


3.15.0 (2012-01-19)

  • Fixed: didn’t emit ProcessStarting events.


    If an application compensated for this by generating the event, it will need to stop or there will be multiple events emited. (Whether or not multiple events will do any harm is application specific.)

3.14.0 (2012-01-10)

  • Set the WSGI environment’s REMOTE_USER item (if not already set) with the Zope principal label. (This is the same data set in the wsgi.logging_info environment item.)

    This change allows user info to be used by paste.translogger middleware (or any similar middleware that uses REMOTE_USER), which provides access logging.

3.13.0 (2011-03-15)

  • Update to zope.testbrowser 4.0.0 which uses WebTest instead of wsgi_intercept.

3.12.0 (2011-01-25)

  • Fixed to work with changes made in version 3.11.0.

3.11.0 (2011-01-24)

  • Moved wsgi_intercept support to zope.testbrowser.wsgi, thus requiring at least version 3.11 of this package:
    • Moved to zope.testbrowser.wsgi.Browser, but left BBB import here.
    • Split up into generic WSGI browser layer (zope.testbrowser.wsgi.Layer) and ZODB/ZOPE specific part ( as before).

3.10.0 (2010-11-18)

  • Add pluggability for setting up WSGI middleware in testlayer.

3.9.3 (2010-10-14)

  • Python 2.7 compatibility for xmlrpc. Transplant of r116141.

3.9.2 (2010-05-23)

  • Fixed test breakage due to changes in mechanize 0.2.0.

3.9.1 (2010-04-24)

  • Add support for testing XMLRPC using
  • Fix a bug in the status string handling in’s FakeResponse.

3.9.0 (2010-04-19)

  • Return a FakeResponse object in, so it becomes easier to port over tests from’s HTTPCaller.
  • X-Powered-By header is now stripped by as it is by
  • Bugfix: initialize any <logger> defined in the config, as does. (Fixes #291147)

3.8.0 (2010-04-14)

  • is now a lot more compatible with the HTTPCaller() functionality in, which it can replace:
    • same transaction behavior - pending transactions are committed before request and synchronized afterwards.
    • support for browser.handleErrors (for zope.testbrowser).
    • support for clear-text (non-base64) Basic authentication headers, which are easier to read in the tests (though not correct in actual HTTP traffic).

3.7.0 (2010-04-13)

  • Rewrite tests in order not to dependent on and

  • introduces new testing functionality that can replace the old functionality in In addition, it supports using zope.testbrowser with WSGI directly (instead of relying on, which pulls in a lot of dependencies).

    The interesting parts are:

    • this sets up a minimal layer that allows you to use the new WSGI-enabled Browser.
    • this is a subclass of Browser from zope.testbrowser.browser. Use it instead of zope.testbrowser.browser directly to use the test browser with WSGI. You need to use BrowserLayer with your tests for this to work.
    • this is the equivalent to the http() function in It allows low-level HTTP access through WSGI. You need to use BrowserLayer with your tests for this to work.

3.6.1 (2010-01-29)

  • Support product configuration sections in Zope configuration files.

3.6.0 (2009-06-20)

  • Import database events directly from zope.processlifetime instead of using BBB imports in

3.5.2 (2009-04-03)

  • The WSGIPublisherApplication uses now the ILoggingInfo concept given from zope.publisher.interfaces.logginginfo for log user infos usable for access logs. This allows you to implement your own access log user info message. See zope.publisher.interfaces.logginginfo.ILoggingInfo for more information.

3.5.1 (2009-03-31)

  • The WSGIPublisherApplication call now provides a user name in the environment meant for use in logs.

3.5.0 (2009-02-10)

  • Make devmode warning message more generic. We don’t nesessary have the etc/zope.conf file nowadays when using buildout-based setups.

  • Add an application factory for Paste. So Zope application can now be easily deployed with Paste .ini configuration like this:

    use =
    config_file = %(here)s/zope.conf
    handle_errors = false

    The config_file is a required argument, however the handle_errors defaults to True if not specified. Setting it to False allows you to make WSGIPublisherApplication not handle exceptions itself but propagate them to an upper middleware, like WebError or something.

  • The WSGIPublisherApplication constructor and getWSGIApplication function now accept optional handle_errors argument, described above.

  • Change mailing list address to zope-dev at instead of retired one.

3.4.1 (2008-07-30)

  • Added Trove classifiers.
  • Notify WSGIPublisherApplicationCreated event when WSGI application is created.
  • Fixed deprecation warning in ftesting.zcml: ZopeSecurityPolicy moved to zope.securitypolicy.

3.4.0 (2007-09-14)

  • Fixed the tests to run on Python 2.5 as well as Python 2.4.
  • Split getApplication into config and getApplication so that config could be reused, for example for debugging.

3.4.0a1 (2007-04-22)

Initial release as a separate project, corresponds to from Zope 3.4.0a1

Release history Release notifications

History Node


History Node


History Node


History Node


History Node


History Node

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date (24.4 kB) Copy SHA256 hash SHA256 Source None Jan 19, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page