跳至主要内容

CMF集成测试框架。

项目描述

简介

CMFTestCase是在ZopeTestCase包之上的一层薄层。它已经被开发出来以简化基于CMF的应用程序和产品的测试。

CMFTestCase 包提供以下功能:

  • 功能 installProduct 用于将 Zope 产品安装到测试环境中。

  • 功能 installPackage 用于将通过 five:registerPackage 注册的 Python 包安装到测试环境中。需要 Zope 2.10.4 或更高版本。

  • 功能 setupCMFSite 用于在测试数据库中创建 CMF 门户。

    注意: setupCMFSite 接受一个可选的 products 参数,允许您指定要添加到门户的产品列表。产品安装是通过标准的 Extensions.Install.install 函数执行的。从 0.8.2 版本开始,您还可以传递一个 extension_profiles 参数以导入 GS 扩展配置文件。

  • 用于派生测试用例的 CMFTestCase 类。

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

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

  • 常量 portal_nameportal_ownerdefault_productsdefault_base_profiledefault_extension_profilesdefault_userdefault_password

  • 常量 CMF15,当 CMF 版本 >= 1.5 时返回 true。

  • 常量 CMF16,当 CMF 版本 >= 1.6 时返回 true。

  • 常量 CMF20,当 CMF 版本 >= 2.0 时返回 true。

  • 常量 CMF21,当 CMF 版本 >= 2.1 时返回 true。

  • 常量 CMF22,当 CMF 版本 >= 2.2 时返回 true。

  • 包含来自 ZopeTestCase 包的所有实用函数的 utils 模块。

示例 CMFTestCase

from Products.CMFTestCase import CMFTestCase

CMFTestCase.installProduct('SomeProduct')
CMFTestCase.setupCMFSite(products=('SomeProduct',))

class TestSomething(CMFTestCase.CMFTestCase):

    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 的示例 CMFTestCase 设置

from Products.CMFTestCase import CMFTestCase

CMFTestCase.installProduct('SomeProduct')
CMFTestCase.setupCMFSite(extension_profiles=('SomeProduct:default',))

请参阅 ZopeTestCase 包的文档,特别是 PortalTestCase 类的文档。

查看此目录中的示例测试以了解如何使用 CMFTestCase 包。

testSkeleton.py 复制到您的测试中开始。

变更日志

0.9.12 (2012-07-02)

  • 使用 zope.component 中的 getSite。[hannosch]

0.9.11 - 2010-09-20

  • 修复了 safe_load_site 调用的清理方法,无论标志是否在 Zope2.App.zcml 或 Products.Five.zcml 中,都会将组件注册表标记为未初始化。[davisagli]

0.9.10 - 2010-07-13

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

0.9.9 - 2009-11-14

  • 有条件地调用 member folder 上的 reindexObjectSecurity,因为 CMF 2.2 的 PortalFolder 已不再具有此方法。[davisagli]

  • 以向后兼容的方式指定所有依赖项。[hannosch]

0.9.8 - 2009-04-19

  • 修复了使用 Globals 的弃用警告。[hannosch]

  • 添加了 CMF22 常量。[stefan]

0.9.8b4 - 2008-10-26

  • 修复 setup.py 中的主页 URL。[stefan]

0.9.8b3 - 2008-10-16

  • 修复:在接管后重新索引成员区域的权限。[stefan]

0.9.8b2 - 2008-10-08

  • Egg 由于使用 svn export 而损坏。谁会想到 setuptools 有所不同?[stefan]

0.9.8b1 - 2008-10-05

  • 静默安装所有 CMF 产品。

  • 将 Products.CMFTestCase Egg 化。

0.9.7

  • CMFSite 层现在可以设置多次。

0.9.6

  • 处理 CMF 2.1 及以上版本中的新皮肤设置。

  • 如果 ZopeTestCase 支持它,则提供 hasPackage 和 installPackage。

  • 在 CMF 2.1 及以上版本中使用新的无状态 GenericSetup API。

0.9.4

  • 针对 CMF 的变化进行了一些小的测试修复。

0.9.2

  • 增加了对本地组件注册表的支持。现在在导入配置文件之前以及在每次测试之前,我们都会在门户上调用setSite()。

0.9.0

  • 增加了CMF21常量。

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

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

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

  • 添加了CMFTestCase.addProfile()方法,允许将扩展配置文件导入站点。这是setupCMFSite()传递‘extension_profiles’参数的替代方法。

  • 使用layer.CMFSite懒创建CMF站点。

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

0.8.6

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

0.8.4

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

  • 添加了ZCMLLayer以支持最近的Zopes和zope.testing.testrunner。感谢Whit Morris。

0.8.2

  • 添加了对将通用设置扩展配置文件列表传递给setupCMFSite函数的支持。

0.8.0

  • 更新到CMF 1.6的新门户创建过程。

0.7.0

  • 更新到CMF 1.5。

  • 添加了API模块,ctc.py。

  • 为CMFTestCase添加了addProduct()方法,允许将产品添加到门户。这是setupCMFSite()传递‘products’参数的替代方法。

  • CMFTestCase现在使用由ZopeTestCase >= 0.9.8提供的独立版本“transaction”模块。

0.6.0(尚未发布)

  • setupCMFSite()现在接受一个“products”参数,允许指定将通过执行其相应的Extensions.Install.install()方法添加到门户的产品列表。

  • 删除了setupCMFSkins()以及设置不带皮肤的CMF站点的功能。

  • 将ZopeTestCase.utils模块作为CMFTestCase.utils提供。

  • 为“功能”CMF测试添加了FunctionalTestCase基类。

  • 测试类现在断言其接口。

0.5.0

  • 用于测试基于CMF的产品和应用程序的包。

项目详情


下载文件

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

源分布

Products.CMFTestCase-0.9.12.zip (28.2 kB 查看哈希值

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面