描述物理对象的内容类型
项目描述
.. 内容::
.. 注意!
-----
更新以下 URL 以指向您的:
- 代码存储库
- 错误跟踪器
- 问题/评论反馈邮件
(不要设置真实邮件,以避免垃圾邮件)
或者如果不使用则将其删除。
- 代码库:http://svn.somewhere.com/...
- 对 somemailing_list 的问题和评论
- 在 http://bug.somewhere.com/ 报告错误。
更改历史记录
********* *****更新
日志
=========
0.1 (xxxx-xx-xx) - - 使用
ZopeSkel [David Jonas]详细文档
创建配方************************简介
============
这是一个成熟的功能测试。这里的重点是测试
用户可能输入和看到的内容,并且系统在很大程度上被测试为黑盒。
我们也使用 PloneTestCase 来设置这个测试,所以我们有一个完整的 Plone 站点
可以玩。我们*可以*检查门户的状态,例如使用
self.portal 和 self.folder,但由于您没有
将系统视为黑匣子,因此经常不受欢迎。此外,例如,如果您
使用 self.setRoles() 之类的调用登录或设置角色,这些不会反映在
作为单独会话运行的测试浏览器中。
作为一个doctest,我们可以在这里讲一个故事。
首先,我们必须执行一些设置。我们使用随附的测试浏览器
与五个,因为这提供了适当的 Zope 2 集成。但是,大多数
文档都在底层的 zope.testbrower 包中。
>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> portal_url = self.portal.absolute_url()
以下在编写和调试 testbrowser 测试时很有用。它让
我们可以看到 error_log 中的所有错误消息。
>>> self.portal.error_log._ignored_exceptions = ()
设置好之后,我们可以转到门户首页并登录。我们将
使用 PloneTestCase 中的默认用户执行此操作:
>>> 来自 Products.PloneTestCase.setup导入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()
在这里,我们设置登录表单上的字段值,然后模拟
提交点击。然后我们确保我们收到友好的登录消息:
>>> “您现在已登录” in browser.contents
True
最后,让我们在继续之前返回我们网站的首页
>
对象内容类型
================================
在本节中,我们通过执行
基本操作来测试对象内容类型,例如添加、更新和删除对象内容
项。
添加新的对象内容项
--------------------------------
我们使用“添加新”菜单添加新的内容项。
>>> browser.getLink('Add new').click()
然后我们选择要添加的项目类型。在这种情况下,我们选择
“对象”并单击“添加”按钮进入添加表单。
>>> browser.getControl('Object').click()
>>> browser.getControl(name='form.button.Add').click()
>>> 'Object' 在浏览器中。
现在我们填写表格并提交。
>>> browser.getControl(name='title').value = 'Object Sample'
>>> browser.getControl('Save').click()
>>> 'Changes saved' in browser.contents
True
我们是完毕!我们向门户添加了一个新的“对象”内容项。
更新现有的对象内容项
---------------------------
让我们点击'编辑'选项卡并更新对象属性值。
>>> browser.getLink('Edit').click()
>>> browser.getControl(name='title').value = 'New Object Sample'
>>> browser.getControl('Save')。
click()我们检查是否应用了更改。
>>> browser.contents 中的“保存的更改”
True
>>> browser.contents 中的“新对象示例”
True
删除一个对象内容项
------------------------------ --
如果我们转到主页,我们可以
在全局导航选项卡中看到一个标题为“New Object Sample”的选项卡。
>>> browser.open(portal_url)
>>> browser.contents 中的“New Object Sample”
True
现在我们将删除“New Object Sample”对象。首先,我们
转到内容选项卡并选择“新对象样本”进行
删除。
>>> browser.getLink('Contents').click()
>>> browser.getControl('New Object Sample').click()
我们点击“删除”按钮。
>>> browser.contents 中的 'Item(s) deleted'
True
因此,如果我们返回主页,则不再有“New Object
Sample”选项卡。
>>> browser.open(portal_url)
>>> browser.contents 中的“新对象示例”
False
添加新对象内容项作为贡献者
-------------------- ----------------------------------------
不仅站点管理员可以添加对象内容项,
站点贡献者也可以。
让我们注销然后以“贡献者”身份登录,这是一个
分配了贡献者角色的门户成员。
>>> browser.getLink('注销').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()
我们选择'Object'并点击'Add'按钮进入添加表单。
>>> browser.getControl('Object').click()
>>> browser.getControl(name='form.button.Add').click()
>>> 'Object' in browser.contents
True
现在我们填写表格并提交。
>>> browser.contents 中的“已保存更改”
True
完成!我们添加了一个以贡献者身份登录的新对象内容项。
最后,让我们以管理员身份重新登录。
>>> browser.getLink('注销').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)
贡献者
********* ***
David Jonas,作者
下载
*********
.. 注意!
-----
更新以下 URL 以指向您的:
- 代码存储库
- 错误跟踪器
- 问题/评论反馈邮件
(不要设置真实邮件,以避免垃圾邮件)
或者如果不使用则将其删除。
- 代码库:http://svn.somewhere.com/...
- 对 somemailing_list 的问题和评论
- 在 http://bug.somewhere.com/ 报告错误。
更改历史记录
********* *****更新
日志
=========
0.1 (xxxx-xx-xx) - - 使用
ZopeSkel [David Jonas]详细文档
创建配方************************简介
============
这是一个成熟的功能测试。这里的重点是测试
用户可能输入和看到的内容,并且系统在很大程度上被测试为黑盒。
我们也使用 PloneTestCase 来设置这个测试,所以我们有一个完整的 Plone 站点
可以玩。我们*可以*检查门户的状态,例如使用
self.portal 和 self.folder,但由于您没有
将系统视为黑匣子,因此经常不受欢迎。此外,例如,如果您
使用 self.setRoles() 之类的调用登录或设置角色,这些不会反映在
作为单独会话运行的测试浏览器中。
作为一个doctest,我们可以在这里讲一个故事。
首先,我们必须执行一些设置。我们使用随附的测试浏览器
与五个,因为这提供了适当的 Zope 2 集成。但是,大多数
文档都在底层的 zope.testbrower 包中。
>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> portal_url = self.portal.absolute_url()
以下在编写和调试 testbrowser 测试时很有用。它让
我们可以看到 error_log 中的所有错误消息。
>>> self.portal.error_log._ignored_exceptions = ()
设置好之后,我们可以转到门户首页并登录。我们将
使用 PloneTestCase 中的默认用户执行此操作:
>>> 来自 Products.PloneTestCase.setup导入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()
在这里,我们设置登录表单上的字段值,然后模拟
提交点击。然后我们确保我们收到友好的登录消息:
>>> “您现在已登录” in browser.contents
True
最后,让我们在继续之前返回我们网站的首页
>
对象内容类型
================================
在本节中,我们通过执行
基本操作来测试对象内容类型,例如添加、更新和删除对象内容
项。
添加新的对象内容项
--------------------------------
我们使用“添加新”菜单添加新的内容项。
>>> browser.getLink('Add new').click()
然后我们选择要添加的项目类型。在这种情况下,我们选择
“对象”并单击“添加”按钮进入添加表单。
>>> browser.getControl('Object').click()
>>> browser.getControl(name='form.button.Add').click()
>>> 'Object' 在浏览器中。
现在我们填写表格并提交。
>>> browser.getControl(name='title').value = 'Object Sample'
>>> browser.getControl('Save').click()
>>> 'Changes saved' in browser.contents
True
我们是完毕!我们向门户添加了一个新的“对象”内容项。
更新现有的对象内容项
---------------------------
让我们点击'编辑'选项卡并更新对象属性值。
>>> browser.getLink('Edit').click()
>>> browser.getControl(name='title').value = 'New Object Sample'
>>> browser.getControl('Save')。
click()我们检查是否应用了更改。
>>> browser.contents 中的“保存的更改”
True
>>> browser.contents 中的“新对象示例”
True
删除一个对象内容项
------------------------------ --
如果我们转到主页,我们可以
在全局导航选项卡中看到一个标题为“New Object Sample”的选项卡。
>>> browser.open(portal_url)
>>> browser.contents 中的“New Object Sample”
True
现在我们将删除“New Object Sample”对象。首先,我们
转到内容选项卡并选择“新对象样本”进行
删除。
>>> browser.getLink('Contents').click()
>>> browser.getControl('New Object Sample').click()
我们点击“删除”按钮。
>>> browser.contents 中的 'Item(s) deleted'
True
因此,如果我们返回主页,则不再有“New Object
Sample”选项卡。
>>> browser.open(portal_url)
>>> browser.contents 中的“新对象示例”
False
添加新对象内容项作为贡献者
-------------------- ----------------------------------------
不仅站点管理员可以添加对象内容项,
站点贡献者也可以。
让我们注销然后以“贡献者”身份登录,这是一个
分配了贡献者角色的门户成员。
>>> browser.getLink('注销').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()
我们选择'Object'并点击'Add'按钮进入添加表单。
>>> browser.getControl('Object').click()
>>> browser.getControl(name='form.button.Add').click()
>>> 'Object' in browser.contents
True
现在我们填写表格并提交。
>>> browser.contents 中的“已保存更改”
True
完成!我们添加了一个以贡献者身份登录的新对象内容项。
最后,让我们以管理员身份重新登录。
>>> browser.getLink('注销').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)
贡献者
********* ***
David Jonas,作者
下载
*********