收藏艺术作品的信息和媒体的民间类型
Products.mediaWork的Python项目详细描述
内容
- 代码库:http://svn.somewhere.com/…
- 对某个邮件列表的问题和评论
- 在http://bug.somewhere.com/报告错误。
Detailed Documentation
简介
这是一个全面的功能测试。这里的重点是测试 用户可以输入并查看,系统在很大程度上被测试为一个黑盒。 我们也使用plonetestcase来设置这个测试,所以我们有一个完整的plone站点 玩。我们可以检查门户的状态,例如使用 self.portal和self.folder,但由于你不是 把系统当作一个黑匣子。另外,如果您,例如,登录或设置 使用self.setroles()等调用的角色,这些调用不会反映在测试中 浏览器,它作为单独的会话运行。
作为一个医生,我们可以在这里讲一个故事。
首先,我们必须进行一些设置。我们使用随附的testbrowser 因为这提供了正确的zope 2集成。大部分 不过,文档在底层的zope.testbrower包中。
>>> from Products.Five.testbrowser import Browser >>> browser = Browser() >>> portal_url = self.portal.absolute_url()
在编写和调试testbrowser测试时,以下内容非常有用。它让 我们在错误日志中看到所有错误消息。
>>> self.portal.error_log._ignored_exceptions = ()
有了它,我们可以转到门户网站首页并登录。我们将 使用plonetestcase的默认用户执行此操作:
>>> from Products.PloneTestCase.setup import portal_owner, default_password
由于附加主题或产品可能会删除或隐藏登录portlet,因此此测试将使用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)
--这里有额外的东西-。- 工作内容类型 ====
在本节中,我们将通过执行 添加、更新和删除工作内容等基本操作 项目。
Adding a new Work content item
我们使用“添加新内容”菜单添加新内容项。
>>> 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
我们完了!我们向门户添加了新的“工作”内容项。
Updating an existing Work content item
让我们单击“编辑”选项卡并更新对象属性值。
>>> 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
Removing a/an Work content item
如果我们转到主页,我们可以看到一个标签,上面写着“新工作” “全局导航”选项卡中的“示例”标题。
>>> browser.open(portal_url) >>> 'New Work Sample' in browser.contents True
现在我们要删除“new work sample”对象。首先我们 转到“内容”选项卡,选择“新工作示例” 删除。
>>> 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
Adding a new Work content item as contributor
不仅允许站点管理员添加工作内容项,而且 还有网站贡献者。
我们先注销,然后以'contributor'登录,该门户成员具有 已分配参与者角色。
>>> 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
完成!我们添加了一个以参与者身份登录的新工作内容项。
国际泳联lly,让我们以经理的身份重新登录。
>>> 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)
Contributors
David Jonas,作者