跳转到主要内容

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 类。

  • 用于与您的测试用例混合的 SandboxedFunctional 类。

  • 常量 portal_nameportal_ownerdefault_policydefault_productsdefault_base_profiledefault_extension_profilesdefault_userdefault_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 (34.5 kB 查看哈希值)

上传时间 源码

由以下组织支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面