/usr/share/pyshared/zope/app/testing/ztapi.py is in python-zope.app.testing 3.10.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | ##############################################################################
#
# Copyright (c) 2003 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""Testing helper functions
$Id: ztapi.py 110724 2010-04-11 00:04:11Z tseaver $
"""
import zope.interface
import zope.component
from zope.publisher.browser import IBrowserRequest
from zope.publisher.interfaces import IDefaultViewName
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
from zope.traversing.interfaces import ITraversable
def provideView(for_, type, providing, name, factory, layer=None):
if layer is None:
layer = type
provideAdapter(for_, providing, factory, name, (layer,))
def provideMultiView(for_, type, providing, name, factory, layer=None):
if layer is None:
layer = type
provideAdapter(for_[0], providing, factory, name, tuple(for_[1:])+(layer,))
def browserView(for_, name, factory, layer=IDefaultBrowserLayer,
providing=zope.interface.Interface):
"""Define a global browser view
"""
if isinstance(factory, (list, tuple)):
raise ValueError("Factory cannot be a list or tuple")
provideAdapter(for_, providing, factory, name, (layer,))
def browserViewProviding(for_, factory, providing, layer=IDefaultBrowserLayer):
"""Define a view providing a particular interface."""
if isinstance(factory, (list, tuple)):
raise ValueError("Factory cannot be a list or tuple")
return browserView(for_, '', factory, layer, providing)
def browserResource(name, factory, layer=IDefaultBrowserLayer,
providing=zope.interface.Interface):
"""Define a global browser view
"""
if isinstance(factory, (list, tuple)):
raise ValueError("Factory cannot be a list or tuple")
provideAdapter((layer,), providing, factory, name)
def setDefaultViewName(for_, name, layer=IDefaultBrowserLayer,
type=IBrowserRequest):
if layer is None:
layer = type
gsm = zope.component.getGlobalSiteManager()
gsm.registerAdapter(name, (for_, layer), IDefaultViewName, '')
stypes = list, tuple
def provideAdapter(required, provided, factory, name='', with_=(), **kw):
if with_ is None and kw.has_key('with'):
with_ = kw['with']
if isinstance(factory, (list, tuple)):
raise ValueError("Factory cannot be a list or tuple")
gsm = zope.component.getGlobalSiteManager()
if with_:
required = (required, ) + tuple(with_)
elif not isinstance(required, stypes):
required = (required,)
gsm.registerAdapter(factory, required, provided, name, event=False)
def subscribe(required, provided, factory):
gsm = zope.component.getGlobalSiteManager()
if provided is None:
gsm.registerHandler(factory, required, event=False)
else:
gsm.registerSubscriptionAdapter(factory, required, provided,
event=False)
def provideUtility(provided, component, name=''):
gsm = zope.component.getGlobalSiteManager()
gsm.registerUtility(component, provided, name, event=False)
def unprovideUtility(provided, name=''):
gsm = zope.component.getGlobalSiteManager()
gsm.unregisterUtility(provided=provided, name=name)
def provideNamespaceHandler(name, handler):
provideAdapter(None, ITraversable, handler, name=name)
provideView(None, None, ITraversable, name, handler)
|