1

有没有办法在不修改源代码PLONE_SITE_ID的情况下更改默认值?plone.app.testing.interfaces

我将 Plone 4 与几个定制产品一起使用,并且plone.app.testing(4.0.2) 相对成功。在我的自定义产品中,有几个实例在执行目录搜索时存在硬编码的物理路径来定位对象(例如,我的站点根目录是“mySiteID”,因此有几个自定义查询用于path=/mySiteID/folder1/etc..进行目录搜索)。

问题是plone.app.testing配置 ( PLONE_FIXTURE) 的 Plone 实例中的站点根目录是PLONE_SITE_ID = 'plone'. 因此,我在测试中添加的任何对象总是/plone作为根而不是/mySiteID我的测试中断。我可以通过更改界面中定义的值来解决这个问题,但这似乎是一个丑陋的 hack。

4

2 回答 2

1

如果你绝对需要,你可以对 id 进行猴子补丁;作为测试运行器部分的一部分,在构建中这样做:

[test]
# ...
initialization =
    import plone.app.testing.interfaces
    plone.app.testing.interfaces = 'mySiteID'
于 2012-10-24T20:45:12.147 回答
1

马丁是正确的。不过,他的回答并没有完全奏效。您需要修补多个 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'
于 2017-07-07T11:06:51.133 回答