本文整理汇总了Python中zope.publisher.browser.TestRequest.interaction方法的典型用法代码示例。如果您正苦于以下问题:Python TestRequest.interaction方法的具体用法?Python TestRequest.interaction怎么用?Python TestRequest.interaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zope.publisher.browser.TestRequest
的用法示例。
在下文中一共展示了TestRequest.interaction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: process
# 需要导入模块: from zope.publisher.browser import TestRequest [as 别名]
# 或者: from zope.publisher.browser.TestRequest import interaction [as 别名]
def process(self, message):
recipient = IRecipient(self.context, None)
if recipient is None:
raise MailInException('Recipent not found.')
# find principal
from_hdr = parseaddr(message['From'])[1].lower()
try:
principal = getPrincipalByEMail(from_hdr)
except PrincipalLookupError:
if IAnonymousSupport.providedBy(recipient):
principal = getUtility(IUnauthenticatedPrincipal)
else:
# member not found
raise MailInException('Member not found: %s'%from_hdr)
# set security context
interaction = queryInteraction()
if interaction is not None:
request = copy.copy(interaction.participations[0])
else:
request = TestRequest()
request.setPrincipal(principal)
request.interaction = None
endInteraction()
newInteraction(request)
# deliver message
try:
recipient.process(message)
except:
log_exc()
# restore old security context
restoreInteraction()