跳转到主要内容

文件夹类型,用于存储关于艺术作品的资料和信息

项目描述

变更历史

变更日志

0.1 (xxxx-xx-xx)

  • 使用ZopeSkel创建配方 [David Jonas]

详细文档

介绍

这是一个完整的功能测试。这里的重点在于测试用户可能输入和看到的内容,系统主要作为一个黑盒进行测试。我们使用PloneTestCase来设置此测试,因此我们有一个完整的Plone站点来操作。我们可以检查门户的状态,例如使用self.portal和self.folder,但这通常是不被推崇的做法,因为你没有将系统作为一个黑盒来对待。此外,如果你,例如,使用self.setRoles()之类的调用登录或设置角色,这些操作不会反映在测试浏览器中,因为测试浏览器是一个独立的会话。

作为一个doctest,我们可以在这里讲述一个故事。

首先,我们必须进行一些设置。我们使用Five附带的自定义测试浏览器,因为它提供了适当的Zope 2集成。尽管如此,大部分文档都在底层的zope.testbrower包中。

>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> portal_url = self.portal.absolute_url()

以下是在编写和调试测试浏览器测试时非常有用的内容。它让我们能够看到所有错误消息在error_log中。

>>> self.portal.error_log._ignored_exceptions = ()

有了这些,我们就可以进入门户首页并登录。我们将使用PloneTestCase的默认用户进行此操作

>>> from Products.PloneTestCase.setup import portal_owner, default_password

由于附加主题或产品可能会删除或隐藏登录组件,因此此测试将使用Plone附带的登录表单。

>>> browser.open(portal_url + '/login_form')
>>> browser.getControl(name='__ac_name').value = portal_owner
>>> browser.getControl(name='__ac_password').value = default_password
>>> browser.getControl(name='submit').click()

在此,我们设置登录表单上的字段值,然后模拟提交点击。然后我们确保我们收到友好的登录消息

>>> "You are now logged in" in browser.contents
True

最后,在继续之前,让我们返回到网站的首页

>>> browser.open(portal_url)

--额外内容放在这里 -- 工作内容类型 ===============================

在本节中,我们通过执行添加、更新和删除工作内容项等基本操作来测试工作内容类型。

添加新的作品内容项

我们使用“添加新内容”菜单来添加新的内容项。

>>> browser.getLink('Add new').click()

然后我们选择要添加的项目类型。在这种情况下,我们选择“工作”并单击“添加”按钮进入添加表单。

>>> browser.getControl('Work').click()
>>> browser.getControl(name='form.button.Add').click()
>>> 'Work' in browser.contents
True

现在我们填写表单并提交。

>>> browser.getControl(name='title').value = 'Work Sample'
>>> browser.getControl('Save').click()
>>> 'Changes saved' in browser.contents
True

完成了!我们在门户中添加了一个新的“工作”内容项。

更新现有的作品内容项

让我们点击“编辑”选项卡并更新对象属性值。

>>> browser.getLink('Edit').click()
>>> browser.getControl(name='title').value = 'New Work Sample'
>>> browser.getControl('Save').click()

我们检查更改是否已应用。

>>> 'Changes saved' in browser.contents
True
>>> 'New Work Sample' in browser.contents
True

删除作品内容项

如果我们转到主页,我们可以看到在全局导航选项卡中有一个名为“新工作样本”的选项卡。

>>> browser.open(portal_url)
>>> 'New Work Sample' in browser.contents
True

现在我们将删除“新工作样本”对象。首先我们转到内容选项卡并选择“新工作样本”进行删除。

>>> browser.getLink('Contents').click()
>>> browser.getControl('New Work Sample').click()

我们点击“删除”按钮。

>>> browser.getControl('Delete').click()
>>> 'Item(s) deleted' in browser.contents
True

因此,如果我们返回到主页,将不再有“新工作样本”选项卡。

>>> browser.open(portal_url)
>>> 'New Work Sample' in browser.contents
False

作为贡献者添加新的作品内容项

不仅网站管理员可以添加工作内容项,网站贡献者也可以。

让我们注销并然后以“贡献者”身份登录,这是一个分配了贡献者角色的门户成员。

>>> browser.getLink('Log out').click()
>>> browser.open(portal_url + '/login_form')
>>> browser.getControl(name='__ac_name').value = 'contributor'
>>> browser.getControl(name='__ac_password').value = default_password
>>> browser.getControl(name='submit').click()
>>> browser.open(portal_url)

我们使用“添加新内容”菜单来添加新的内容项。

>>> browser.getLink('Add new').click()

我们选择“工作”并点击“添加”按钮进入添加表单。

>>> browser.getControl('Work').click()
>>> browser.getControl(name='form.button.Add').click()
>>> 'Work' in browser.contents
True

现在我们填写表单并提交。

>>> browser.getControl(name='title').value = 'Work Sample'
>>> browser.getControl('Save').click()
>>> 'Changes saved' in browser.contents
True

完成了!我们以贡献者身份添加了一个新的工作内容项。

最后,让我们以管理员的身份再次登录。

>>> browser.getLink('Log out').click()
>>> browser.open(portal_url + '/login_form')
>>> browser.getControl(name='__ac_name').value = portal_owner
>>> browser.getControl(name='__ac_password').value = default_password
>>> browser.getControl(name='submit').click()
>>> browser.open(portal_url)

贡献者

大卫·约纳斯,作者

下载

项目详情


下载文件

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

源分布

Products.mediaWork-0.2.tar.gz (11.3 kB 查看哈希)

上传时间

支持

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