在plone.app.testing / Plone 4中更改站点根目录

时间:2012-10-24 18:55:57

标签: plone zope

有没有办法在不修改源代码的情况下将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,我的测试会中断。我可以通过更改界面中定义的值来解决这个问题,但这看起来像是一个丑陋的黑客。

2 个答案:

答案 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'