本文整理汇总了Python中zope.component.provideAdapter函数的典型用法代码示例。如果您正苦于以下问题:Python provideAdapter函数的具体用法?Python provideAdapter怎么用?Python provideAdapter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了provideAdapter函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_dont_swallow_conflict_error
def test_dont_swallow_conflict_error(self):
@implementer(IRulesetLookup)
@adapter(Interface, Interface)
class DummyRulesetLookup(object):
def __init__(self, published, request):
self.published = published
self.request = request
def __call__(self):
raise ConflictError()
provideAdapter(DummyRulesetLookup)
provideUtility(Registry(), IRegistry)
registry = getUtility(IRegistry)
registry.registerInterface(ICacheSettings)
settings = registry.forInterface(ICacheSettings)
settings.enabled = True
settings.operationMapping = {'foo': 'bar'}
view = DummyView()
request = DummyRequest(view, DummyResponse())
self.assertRaises(ConflictError, intercept, DummyEvent(request))
示例2: test_locale_semantics
def test_locale_semantics(self):
from zope.component import provideAdapter
from zope.publisher.browser import BrowserLanguages
from zope.publisher.interfaces.http import IHTTPRequest
from zope.i18n.interfaces import IUserPreferredLanguages
from zope.i18n.interfaces.locales import ILocale
provideAdapter(BrowserLanguages, [IHTTPRequest],
IUserPreferredLanguages)
env_ = {'HTTP_ACCEPT_LANGUAGE': 'en'}
# we should also test the correct semantics of the locale
for httplang in ('it', 'it-ch', 'it-CH', 'IT', 'IT-CH', 'IT-ch'):
env = env_.copy()
env['HTTP_ACCEPT_LANGUAGE'] = httplang
request = self._makeOne(environ=env)
locale = request.locale
self.assert_(ILocale.providedBy(locale))
parts = httplang.split('-')
lang = parts.pop(0).lower()
territory = variant = None
if parts:
territory = parts.pop(0).upper()
if parts:
variant = parts.pop(0).upper()
self.assertEqual(locale.id.language, lang)
self.assertEqual(locale.id.territory, territory)
self.assertEqual(locale.id.variant, variant)
示例3: test_anonymous_can_not_add_comments_if_discussion_is_not_allowed
def test_anonymous_can_not_add_comments_if_discussion_is_not_allowed(self):
"""Make sure that anonymous users can't post comments if anonymous
comments are disabled.
"""
# Anonymous comments are disabled by default
logout()
def make_request(form={}):
request = TestRequest()
request.form.update(form)
alsoProvides(request, IFormLayer)
alsoProvides(request, IAttributeAnnotatable)
return request
provideAdapter(adapts=(Interface, IBrowserRequest),
provides=Interface,
factory=CommentForm,
name=u"comment-form")
request = make_request(form={'form.widgets.text': u'bar'})
commentForm = getMultiAdapter((self.context, request),
name=u"comment-form")
commentForm.update()
data, errors = commentForm.extractData() # pylint: disable-msg=W0612
self.assertEqual(len(errors), 0)
self.assertRaises(
Unauthorized,
commentForm.handleComment,
commentForm,
"foo"
)
示例4: test_LastModified
def test_LastModified(self):
from plone.app.caching.operations.etags import LastModified
mod = datetime(2010, 1, 2, 3, 4, 5, 6, tzlocal())
utcStamp = time.mktime(mod.utctimetuple())
class DummyLastModified(object):
implements(ILastModified)
adapts(DummyPublished)
def __init__(self, context):
self.context = context
def __call__(self):
return mod
provideAdapter(DummyLastModified)
environ = {'SERVER_NAME': 'example.com', 'SERVER_PORT': '80'}
response = HTTPResponse()
request = HTTPRequest(StringIO(), environ, response)
published = DummyPublished(DummyContext())
etag = LastModified(published, request)
self.assertEqual(str(utcStamp), etag())
示例5: test_UserID_member
def test_UserID_member(self):
from plone.app.caching.operations.etags import UserID
class DummyMember(object):
def getId(self):
return 'bob'
class DummyPortalState(object):
implements(Interface)
adapts(DummyContext, Interface)
def __init__(self, context, request):
pass
def member(self):
return DummyMember()
provideAdapter(DummyPortalState, name=u"plone_portal_state")
environ = {'SERVER_NAME': 'example.com', 'SERVER_PORT': '80'}
response = HTTPResponse()
request = HTTPRequest(StringIO(), environ, response)
published = DummyPublished(DummyContext())
etag = UserID(published, request)
self.assertEqual('bob', etag())
示例6: registerPublisherForFTI
def registerPublisherForFTI(fti):
# This registers a publisher that will allow to traverse to each sql item
if not getattr(fti, 'sql_table', None):
return
name = getattr(fti, 'sql_folder_id', fti.id)
has_folder = False
if name and IRelationValue.providedBy(name):
obj = name.to_object
if obj:
has_folder = True
name = obj.getId()
else:
name = fti.context.getId()
elif name and name.startswith('/'):
portal = getToolByName(getSite(), "portal_url").getPortalObject()
try:
folder = portal.restrictedTraverse(name)
has_folder = True
except:
pass
elif not name:
name = fti.context.getId()
if not has_folder:
view = queryMultiAdapter((None, ICollectiveBehaviorSQLLayer), IBrowserView, name='data-'+name, default=None)
if view != None:
return view
publisher = SQLItemPublisher
provideAdapter(
factory=publisher,
adapts=(None, ICollectiveBehaviorSQLLayer),
provides=IBrowserView,
name='data-'+name)
LOG.info('Publisher registered for data-'+name)
示例7: _setUpDefaultTraversable
def _setUpDefaultTraversable():
from zope.interface import Interface
from zope.component import provideAdapter
from zope.traversing.interfaces import ITraversable
from zope.traversing.adapters import DefaultTraversable
provideAdapter(DefaultTraversable, (Interface,), ITraversable)
示例8: pdfSetUp
def pdfSetUp(test=None):
setup.placefulSetUp()
sbsetup.setUpCalendaring()
app = ApplicationStub()
provideAdapter(lambda x: app, (None,), ISchoolToolApplication)
provideAdapter(getApplicationPreferences,
(ISchoolToolApplication,), IApplicationPreferences)
示例9: setUp
def setUp(self):
super(TestInvitationFormEmailing, self).setUp()
self.login_as_portal_owner()
provideAdapter(adapts=(Interface, IBrowserRequest),
provides=Interface,
factory=InviteForm,
name="invite")
# create a workspace
self.ws = api.content.create(
self.portal,
"ploneintranet.workspace.workspacefolder",
"alejandro-workspace",
title="Alejandro workspace")
self.app = self.layer['app']
self.portal = self.layer['portal']
self.request = self.layer['request']
# don't import this at the top, because it screws up the setup
# and none of the tests can run
from Products.CMFPlone.tests.utils import MockMailHost
# # Mock the mail host so we can test sending the email
mockmailhost = MockMailHost('MailHost')
if not hasattr(mockmailhost, 'smtp_host'):
mockmailhost.smtp_host = 'localhost'
self.portal.MailHost = mockmailhost
sm = self.portal.getSiteManager()
sm.registerUtility(component=mockmailhost, provided=IMailHost)
self.mailhost = api.portal.get_tool('MailHost')
self.portal._updateProperty('email_from_name', 'Portal Owner')
self.portal._updateProperty('email_from_address', '[email protected]')
示例10: test_match_abort
def test_match_abort(self):
provideAdapter(DefaultRulesetLookup)
provideUtility(Registry(), IRegistry)
registry = getUtility(IRegistry)
registry.registerInterface(ICacheSettings)
settings = registry.forInterface(ICacheSettings)
settings.enabled = True
z3c.caching.registry.register(DummyView, 'testrule')
settings.operationMapping = {'testrule': 'op1'}
@implementer(ICachingOperation)
@adapter(Interface, Interface)
class DummyOperation(object):
def __init__(self, published, request):
self.published = published
self.request = request
def modifyResponse(self, rulename, response):
pass
def interceptResponse(self, rulename, response):
response.addHeader('X-Cache-Foo', 'test')
return None
provideAdapter(DummyOperation, name='op1')
view = DummyView()
request = DummyRequest(view, DummyResponse())
intercept(DummyEvent(request))
self.assertEqual({'PUBLISHED': view}, dict(request))
self.assertEqual({'X-Cache-Rule': ['testrule'],
'X-Cache-Foo': ['test']}, dict(request.response))
示例11: test_off_switch
def test_off_switch(self):
provideAdapter(DefaultRulesetLookup)
provideUtility(Registry(), IRegistry)
registry = getUtility(IRegistry)
registry.registerInterface(ICacheSettings)
settings = registry.forInterface(ICacheSettings)
settings.enabled = False
z3c.caching.registry.register(DummyView, 'testrule')
settings.operationMapping = {'testrule': 'op1'}
@implementer(ICachingOperation)
@adapter(Interface, Interface)
class DummyOperation(object):
def __init__(self, published, request):
self.published = published
self.request = request
def interceptResponse(self, rulename, response):
return None
def modifyResponse(self, rulename, response):
response['X-Mutated'] = rulename
provideAdapter(DummyOperation, name='op1')
view = DummyView()
request = DummyRequest(view, DummyResponse())
MutatorTransform(view, request).transformUnicode(u'', 'utf-8')
self.assertEqual({'PUBLISHED': view}, dict(request))
self.assertEqual({}, dict(request.response))
示例12: test_swallow_other_error
def test_swallow_other_error(self):
@implementer(IRulesetLookup)
@adapter(Interface, Interface)
class DummyRulesetLookup(object):
def __init__(self, published, request):
self.published = published
self.request = request
def __call__(self):
raise AttributeError('Should be swallowed and logged')
provideAdapter(DummyRulesetLookup)
provideUtility(Registry(), IRegistry)
registry = getUtility(IRegistry)
registry.registerInterface(ICacheSettings)
settings = registry.forInterface(ICacheSettings)
settings.enabled = True
settings.operationMapping = {'foo': 'bar'}
view = DummyView()
request = DummyRequest(view, DummyResponse())
try:
intercept(DummyEvent(request))
except Exception:
self.fail('Intercept should not raise')
示例13: test_request_not_annotatable
def test_request_not_annotatable(self):
context = FauxContext()
request = FauxRequest()
setRequest(request)
configlet= CachePurgingConfiglet()
provideUtility(configlet, ICachePurgingConfiglet)
settings = getUtility(ICachePurgingConfiglet)
settings.enabled = True
settings.cachingProxies = ('http://localhost:1234',)
class FauxPurgePaths(object):
implements(IPurgePaths)
adapts(FauxContext)
def __init__(self, context):
self.context = context
def getRelativePaths(self):
return ['/foo', '/bar']
def getAbsolutePaths(self):
return []
provideAdapter(FauxPurgePaths, name="test1")
try:
notify(Purge(context))
except:
self.fail()
示例14: test_retry_keeps_everything
def test_retry_keeps_everything(self):
"""lowlevel test for retry (see #98440)"""
from zope.publisher.browser import TestRequest
from zope.publisher.skinnable import setDefaultSkin
from zope.publisher.interfaces import IDefaultSkin
from zope.publisher.interfaces.browser import IBrowserRequest
from zope.publisher.interfaces.browser import IBrowserSkinType
# create a retryable request
request = TestRequest()
self.assertTrue(request.supportsRetry())
# create a skin and register it as the default skin
class ISomeSkin(Interface):
pass
alsoProvides(ISomeSkin, IBrowserSkinType)
provideAdapter(ISomeSkin, (IBrowserRequest,), IDefaultSkin)
# set the default skin for the request
setDefaultSkin(request)
# create a retried request
retried = request.retry()
# the requests are not the same
self.assertTrue(request is not retried)
# the requests both provide the default skin
self.assertTrue(ISomeSkin.providedBy(request))
self.assertTrue(ISomeSkin.providedBy(retried))
示例15: test_Roles_member
def test_Roles_member(self):
from plone.app.caching.operations.etags import Roles
class DummyMember(object):
def getRolesInContext(self, context):
return ['Member', 'Manager']
class DummyPortalState(object):
implements(Interface)
adapts(DummyContext, Interface)
def __init__(self, context, request):
pass
def anonymous(self):
return False
def member(self):
return DummyMember()
provideAdapter(DummyPortalState, name=u"plone_portal_state")
environ = {'SERVER_NAME': 'example.com', 'SERVER_PORT': '80'}
response = HTTPResponse()
request = HTTPRequest(StringIO(), environ, response)
published = DummyPublished(DummyContext())
etag = Roles(published, request)
self.assertEqual('Manager;Member', etag())