Plone的集成测试框架。
项目描述
简介
PloneTestCase 是 ZopeTestCase 包的一个薄层封装。它被开发出来以简化基于 Plone 的应用程序和产品的测试。
PloneTestCase 包提供以下功能:
函数 installProduct 用于在测试环境中安装 Zope 产品。
函数 installPackage 用于在测试环境中安装通过 five:registerPackage 注册的 Python 包。需要 Zope 2.10.4 或更高版本。
函数 setupPloneSite 用于在测试数据库中创建一个 Plone 门户。
注意:函数 setupPloneSite 接受一个可选的 products 参数,允许您通过 quickinstaller 工具指定要添加到门户的产品列表。从 0.8.2 版本开始,您还可以传递一个 extension_profiles 参数来导入 GS 扩展配置文件。
从其中派生您的测试用例的 PloneTestCase 类。
从其中派生您的功能单元测试用例的 FunctionalTestCase 类。
用于与您的测试用例混合的 Sandboxed 和 Functional 类。
常量 portal_name、portal_owner、default_policy、default_products、default_base_profile、default_extension_profiles、default_user 和 default_password。
常量 PLONE21,当 Plone 版本 >= 2.1 时为真。
常量 PLONE25,当 Plone 版本 >= 2.5 时为真。
常量 PLONE30,当 Plone 版本 >= 3.0 时为真。
常量 PLONE31,当 Plone 版本 >= 3.1 时为真。
常量 PLONE32,当 Plone 版本 >= 3.2 时为真。
常量 PLONE33,当 Plone 版本 >= 3.3 时为真。
常量 PLONE40,当 Plone 版本 >= 4.0 时为真。
常量 PLONE50,当 Plone 版本 >= 5.0 时为真。
模块 utils,其中包含 ZopeTestCase 包中的所有实用函数。
示例 PloneTestCase
from Products.PloneTestCase import PloneTestCase PloneTestCase.installProduct('SomeProduct') PloneTestCase.setupPloneSite(products=('SomeProduct',)) class TestSomething(PloneTestCase.PloneTestCase): def afterSetup(self): self.folder.invokeFactory('Document', 'doc') def testEditDocument(self): self.folder.doc.edit(text_format='plain', text='data') self.assertEqual(self.folder.doc.EditableBody(), 'data')
使用 GenericSetup 的示例 PloneTestCase 设置
from Products.PloneTestCase import PloneTestCase PloneTestCase.installProduct('SomeProduct') PloneTestCase.setupPloneSite(extension_profiles=('SomeProduct:default',))
请参阅 ZopeTestCase 包的文档,特别是 PortalTestCase 类的文档。
查看此目录中的示例测试,以了解如何使用 PloneTestCase 包。还可以查看随 Plone 一起提供的测试。
将 testSkeleton.py 复制到您的测试目录以开始自己的测试。
变更日志
0.9.18 (2014-03-02)
为 Plone 5 调整条件,而不是 4.4。[davisagli]
0.9.17 (2013-05-23)
有条件地安装 plone.app.event,并且仅针对 Plone 4.4 及更高版本。[thet]
0.9.16 (2013-04-06)
修复损坏的导入,有条件地加载 plone.app.events。[kiorky]
0.9.15 (2012-07-02)
使一些导入现代化。[hannosch]
进行小范围的 pep8 清理,在几个地方将 has_key() 语法改为 'in' 语法。[pbdiode]
0.9.14 (2012-04-15)
更早地安装包,以便在 Plone 4.2 中正确设置新集合的测试。[davisagli]
如果没有 Plone,则明确失败(而不是模糊失败)。[stefan]
0.9.13 - 2011-01-03
依赖于 Products.CMFPlone 而不是 Plone。[elro]
稍微放宽对角色数量的测试,以兼容 Plone 4.1。[davisagli]
0.9.12 - 2010-09-20
修复由 safe_load_site 调用的清理方法,无论标志是在 Zope2.App.zcml 还是 Products.Five.zcml 中,都会将组件注册表标记为未初始化。[davisagli]
0.9.11 - 2010-09-15
在测试设置期间安装 plone.app.imaging monkeypatches。[davisagli]
添加来自 zope.testrunner 的层支持,并从 zope.testing 中删除。[jfroche]
0.9.10 - 2010-07-13
与 Zope 2.13 兼容,并避免与 zope.schema 词汇表的设置问题。[hannosch]
撤销 r100668,因为问题不再存在。[stefan]
0.9.9 - 2009-11-14
使用 _createObjectByType 创建的文件夹在 portal_catalog 中报告为 portal_type 为 ‘ATFolder’。重新索引后将其改为正确的‘文件夹’。[esteele]
在拆卸时重置 memoize RAMCaches。修复了 http://dev.plone.org/plone/ticket/9425 [stefan]
在测试设置期间安装来自 plone.app.blob 的 blob 启用类型。[witsch]
在测试运行期间安装 TinyMCE 产品。[hannosch]
将 sunburst 主题添加到 Plone 4 的默认扩展配置文件。[davisagli]
以向后兼容的方式指定依赖项。[hannosch]
更改了 default_extension_profiles 的行为。现在我们总是添加默认配置文件。您仍然可以通过向 setupPloneSite 函数传递显式的空 default_extension_profiles 参数来覆盖此设置。[hannosch]
将 PLONE50 及以前的版本的产品安装代码分离出来。基本包的数量相当不同。[hannosch]
将 Plone 版本确定代码移动到其自己的模块。[hannosch]
将 PLONE40 常量调整为 PLONE50 并检查 Plone trunk。[hannosch]
在 Plone trunk 中手动安装 ATContentTypes 默认配置文件。[hannosch]
0.9.8 - 2009-04-16
防止缺少 portal_quickinstaller 工具。[hannosch]
修复了使用 Globals 的弃用警告。[hannosch]
调整 _createHomeFolder,在站点创建代码未创建的情况下创建‘成员’文件夹。[hannosch]
在迁移移出 CMFPlone 包后调整 PLONE40 检查。[hannosch]
添加 PLONE33 常量。[stefan]
0.9.8b4 - 2008-10-26
添加 PLONE32 常量。[stefan]
0.9.8b3 - 2008-10-16
错误修复:默认成员区域在门户完全配置之前创建。[stefan]
错误修复:在接管后重新索引成员区域的权限。[stefan]
0.9.8b2 - 2008-10-09
由于使用了 svn export,Egg 被破坏。谁会想到 setuptools 有所不同?[stefan]
0.9.8b1 - 2008-10-05
安静地安装所有 Plone 产品。
将 Products.PloneTestCase Egg 化。
0.9.7
添加 PLONE31 和 PLONE40 常量。
PloneSite 层现在可以设置多次。感谢 Andreas Zeidler 和 Balazs Ree。[hannosch]
0.9.6
处理 CMF 2.1 及以上版本中的新皮肤设置。
如果 ZopeTestCase 支持,则提供 hasPackage 和 installPackage。
将许可证更改为 GPL,清理我的行为。
在 Plone 3.0 及以上版本中使用新的无状态 GenericSetup API。
0.9.4
针对 PlonePAS 和 CMF 的更改进行了较小的测试修复。
0.9.3
在 0.9.2 中,我们意外地失去了覆盖 getPortal 的能力。已修复。
像 zope.app.testing 一样拼写‘placefulSetup’以保持一致性。
0.9.2
改进了对本地组件注册表的 支持。我们现在在 Plone >= 3.0 创建它后立即注册它,因为它在站点设置期间需要。我们还将在访问时将其设置为站点,以使 CMF 皮肤获取正常工作。
0.9.0
为将 ZopeTestCase 转换为 Zope3 接口做准备。
懒加载 etc/site.zcml 而不是使用包装器。
逐个导入扩展配置文件以获得更好的控制。
添加了 PloneTestCase.addProfile() 方法,允许将扩展配置文件导入到站点中。这是向 setupPloneSite() 传递“extension_profiles”参数的替代方法。
使用 layer.PloneSite 懒创建 Plone 站点。
将 utils.py 重命名为 five.py。
0.8.6
从 Plone 3.0 开始,门户也是一个组件注册表。我们现在自动执行必要的注册。
确保层清理将 Five.zcml 重置为“未初始化”。
0.8.4
允许向 setupPloneSite 函数传递基本配置文件。
添加 PLONE30 常量。
将 StringIO monkey patch 的应用设置为条件,因为它是从 Plone 3.0 开始的 CMFPlone/patches 的一部分
添加 ZCMLLayer 以支持最近的 Zopes 和 zope.testing.testrunner。感谢 Whit Morris。[hannosch]
0.8.2
增加了对将GenericSetup扩展配置文件列表传递给setupPloneSite函数的支持。
0.8.0
增加了对Plone 2.5的支持。
项目详情
Products.PloneTestCase-0.9.18.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c8fd8535f796838d69a1ed570a927b5bd39cd2e47eb1f4db22e8b9ad8d8a5144 |
|
MD5 | 0bc6f428a8158a8af29d9d875dbec8d4 |
|
BLAKE2b-256 | 3583def1f9f9314b784ea7e0e6202efa1f3ec8ae2e6cda20e5bf9b6b8bd833f9 |