Skip to main content

Plone 的集成测试框架。

项目描述

介绍

PloneTestCase 是 ZopeTestCase 包顶部的一个薄层。它的开发是为了简化基于 Plone 的应用程序和产品的测试。

PloneTestCase 包提供

  • 函数installProduct将 Zope 产品安装到测试环境中。

  • 函数installPackage将通过五:registerPackage 注册的 Python 包安装到测试环境中。需要 Zope 2.10.4 或更高版本。

  • 用于在测试数据库中创建 Plone 门户的函数setupPloneSite 。

    注意:setupPloneSite接受可选的products参数,它允许您指定将使用 quickinstaller 工具添加到门户的产品列表。从 0.8.2 开始,您还可以传递extension_profiles参数来导入 GS 扩展配置文件。

  • 派生测试用例的类PloneTestCase

  • 用于派生功能单元测试的测试用例的类FunctionalTestCase 。

  • 沙盒类和功能类与您自己的测试用例混合。

  • 常量portal_nameportal_ownerdefault_policydefault_productsdefault_base_profiledefault_extension_profilesdefault_userdefault_password

  • 对于 Plone 版本 >= 2.1的常数PLONE21评估为真。

  • 对于 Plone 版本 >= 2.5的常数PLONE25评估为真。

  • 对于 Plone 版本 >= 3.0的常量PLONE30评估为真。

  • 对于 Plone 版本 >= 3.1 计算结果为 true的常数PLONE31 。

  • 对于 Plone 版本 >= 3.2的常量PLONE32计算结果为真。

  • 对于 Plone 版本 >= 3.3的常量PLONE33计算结果为真。

  • 对于 Plone 版本 >= 4.0的常量PLONE40评估为真。

  • 对于 Plone 版本 >= 5.0的常数PLONE50评估为真。

  • 模块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 的条件。[达维萨利]

0.9.17 (2013-05-23)

  • 有条件地安装 plone.app.event 并且仅适用于 Plone 4.4 及更高版本。[主题]

0.9.16 (2013-04-06)

  • 修复损坏的导入,加载 plone.app.events 条件。[柯基]

0.9.15 (2012-07-02)

  • 使一些进口现代化。[汉诺施]

  • 次要 pep8 清理,在一些区域将 has_key() 语法更改为 'in' 语法 [pbdiode]

0.9.14 (2012-04-15)

  • 尽早安装软件包,以便新集合的测试设置在 Plone 4.2 中正常工作。[达维萨利]

  • 如果没有 Plone,则显式失败(而不是晦涩难懂)。[斯蒂芬]

0.9.13 - 2011-01-03

  • 依赖Products.CMFPlone而不是Plone。[埃尔罗]

  • 为了与 Plone 4.1 兼容,稍微放宽对角色数量的测试。[达维萨利]

0.9.12 - 2010-09-20

  • 修复 safe_load_site 调用的清理方法,将组件注册表标记为未初始化,无论该标志是在 Zope2.App.zcml 还是 Products.Five.zcml 中。[达维萨利]

0.9.11 - 2010-09-15

  • 在测试设置期间安装plone.app.imaging monkeypatches。[达维萨利]

  • 添加来自 zope.testrunner 并从 zope.testing [jfroche] 中删除的层支持

0.9.10 - 2010-07-13

  • 与 Zope 2.13 兼容并避免 zope.schema 词汇表的设置问题。[汉诺施]

  • 恢复 r100668,因为该问题不再发生。[斯蒂芬]

0.9.9 - 2009-11-14

  • 使用 _createObjectByType 创建的文件夹被报告为在 portal_catalog 中具有 portal_type 'ATFolder'。重新索引它会将其翻转到正确的“文件夹”。[埃斯蒂尔]

  • 在拆除时重置 memoize RAMCaches。修复http://dev.plone.org/plone/ticket/9425 [stefan]

  • 在测试设置期间从plone.app.blob安装启用 Blob 的类型。[巫术]

  • 在测试运行期间安装 TinyMCE 产品。[汉诺施]

  • 将 sunburst 主题添加到 Plone 4 的默认扩展配置文件中。 [davisagli]

  • 以向后兼容的方式指定依赖项。[汉诺施]

  • 更改了default_extension_profiles的行为。我们现在总是添加默认配置文件。您仍然可以通过将明确的空 default_extension_profiles参数传递给setupPloneSite函数来覆盖它。[汉诺施]

  • 解开PLONE50及之前的产品安装代码。包裹的基本数量是完全不同的。[汉诺施]

  • 将 Plone 版本确定代码移动到其自己的模块中。[汉诺施]

  • 将 PLONE40 常数调整为 PLONE50 并检查 Plone 主干。[汉诺施]

  • 在 Plone trunk 中手动安装 ATContentTypes 默认配置文件。[汉诺施]

0.9.8 - 2009-04-16

  • 防止缺少 portal_quickinstaller 工具。[汉诺施]

  • 修复了使用 Globals 的弃用警告。[汉诺施]

  • 调整 _createHomeFolder 以创建“成员”文件夹,如果它不是由站点创建代码创建的。[汉诺施]

  • 将迁移移出 CMFPlone 包后调整了 PLONE40 检​​查。[汉诺施]

  • 添加了 PLONE33 常量。[斯蒂芬]

0.9.8b4 - 2008-10-26

  • 添加了 PLONE32 常量。[斯蒂芬]

0.9.8b3 - 2008-10-16

  • 修正:在完全配置门户之前创建了默认成员区域。[斯蒂芬]

  • 错误修正:获得所有权后重新索引成员区域的安全性。[斯蒂芬]

0.9.8b2 - 2008-10-09

  • Egg 由于使用 svn 导出而损坏。谁会有 thunk setuptools 有所作为?[斯蒂芬]

0.9.8b1 - 2008-10-05

  • 安静地安装所有 Plone 产品。

  • Eggified Products.PloneTestCase。

0.9.7

  • 添加了 PLONE31 和 PLONE40 常量。

  • 现在可以多次设置 PloneSite 层。感谢 Andreas Zeidler 和 Balazs Ree。

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 的能力。固定的。

  • 将“placefulSetup”拼写为“placefulSetUp”,以与 zope.app.testing 保持一致。

0.9.2

  • 改进了对本地组件注册表的支持。我们现在在 Plone >= 3.0 中创建它后立即注册它,因为在站点设置期间需要它。我们还将门户设置为一个站点,只要它被访问以使 CMF 皮肤获取工作即可。

0.9.0

  • 准备将 ZopeTestCase 切换到 Zope3 接口。

  • 懒惰地加载 etc/site.zcml 而不是使用包装器。

  • 一一导入扩展配置文件以获得更好的控制。

  • 添加了一个 PloneTestCase.addProfile() 方法,该方法允许将扩展配置文件导入站点。这是将“extension_profiles”参数传递给 setupPloneSite() 的替代方法。

  • 使用 layer.PloneSite 懒惰地创建 Plone 站点。

  • 将 utils.py 重命名为 Five.py。

0.8.6

  • 从 Plone 3.0 开始,门户也是一个组件注册表。现在自动进行需要的登录。

  • 确保层清理将 Five.zcml 重置为“未初始化”。

0.8.4

  • 允许将基本配置文件传递给 setupPloneSite 函数。

  • 添加了 PLONE30 常量。

  • 有条件地应用 StringIO 猴子补丁,因为它是从 Plone 3.0 开始的 CMFPlone/补丁的一部分

  • 添加了 ZCMLLayer 以支持最近的 Zopes 和 zope.testing.testrunner。感谢惠特莫里斯。

0.8.2

  • 添加了对将 GenericSetup 扩展配置文件列表传递给 setupPloneSite 函数的支持。

0.8.0

  • 添加了对 Plone 2.5 的支持。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Products.PloneTestCase-0.9.18.zip (34.5 kB 查看哈希

已上传 source