Plone 如何以编程方式注册浏览器层

Plone 如何以编程方式注册浏览器层,plone,genericsetup,Plone,Genericsetup,我知道可以使用GenericSetup和一个XML文件注册浏览器层,但我需要以编程方式进行注册 这可能吗?给你: >>> from plone.browserlayer.tests.interfaces import IMyProductLayer >>> from plone.browserlayer import utils >>> IMyProductLayer in utils.registered_layers() False &

我知道可以使用GenericSetup和一个XML文件注册浏览器层,但我需要以编程方式进行注册

这可能吗?

给你:

>>> from plone.browserlayer.tests.interfaces import IMyProductLayer
>>> from plone.browserlayer import utils
>>> IMyProductLayer in utils.registered_layers()
False

>>> utils.register_layer(IMyProductLayer, name='my.product')
>>> IMyProductLayer in utils.registered_layers()
True
抄袭

如果您只想在测试请求中显示浏览器层,可以使用ZCA并直接向测试请求提供浏览器层接口:

from zope.interface import directlyProvides
from my.product.interfaces import IMyProductBrowserLayer
directlyProvides(self.request, IMyProductBrowserLayer)

您能更具体地描述一下您的用例吗?测试需要这个吗?是的,这是测试需要它是测试需要它,我需要在测试之前以编程方式注册浏览器层,并运行升级步骤取消注册。谢谢,我需要回答的第一部分。我认为唯一的问题是接口被删除到了我的分支中,所以我将尝试将其模拟成测试脚本