有没有办法在不修改源代码的情况下将PLONE_SITE_ID
更改为plone.app.testing.interfaces
的默认值?
我正在使用Plone 4和几个自定义产品,plone.app.testing
(4.0.2)相对成功。在我的自定义产品中,有几个实例存在硬编码物理路径,用于在执行目录搜索时查找对象(例如,我的站点根目录为'mySiteID',因此多个自定义查询使用path=/mySiteID/folder1/etc..
进行目录搜索)。 / p>
问题是plone.app.testing
配置(PLONE_FIXTURE
)的Plone实例中的网站根目录是PLONE_SITE_ID = 'plone'
。因此,我在测试中添加的任何对象始终以/plone
为根,而不是/mySiteID
,我的测试会中断。我可以通过更改界面中定义的值来解决这个问题,但这看起来像是一个丑陋的黑客。
答案 0 :(得分:1)
如果你绝对 ,你可以monkeypatch id;在buildout中作为测试运行器部分的一部分进行:
[test]
# ...
initialization =
import plone.app.testing.interfaces
plone.app.testing.interfaces = 'mySiteID'
答案 1 :(得分:1)
Martijn是对的。尽管如此,他的回答并没有完全解决问题。你需要修补多个plone.app.testing导入以实现这一点:
[test]
...
initialization =
import plone.app.testing.helpers
plone.app.testing.helpers.PLONE_SITE_ID = 'Plone'
import plone.app.testing.interfaces
plone.app.testing.interfaces.PLONE_SITE_ID = 'Plone'
import plone.app.testing.layers
plone.app.testing.layers.PLONE_SITE_ID = 'Plone'