plone.org的奖金计划徽标显示机制

ploneorg.kudobount的Python项目详细描述


Change history

changelog

0.1 (2011-05-13)

  • 清理释放 [标记]
  • 初始功能 [Mylan在Quintagroup.com]
  • 用佐培克尔制作的配方 [Mylan在Quintagroup.com]

Detailed Documentation

Introduction

这是一个全面的功能测试。这里的重点是测试 用户可以输入并查看,系统在很大程度上被测试为一个黑盒。 我们也使用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)

--这里有额外的东西--

The Bounty Program Submission content type

在本节中,我们将通过执行 添加、更新和删除悬赏计划提交内容等基本操作 项目。

Adding a new Bounty Program Submission content item

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

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

然后选择要添加的项目类型。在这种情况下,我们选择 “悬赏计划提交”并单击“添加”按钮以进入添加表单。

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

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

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

我们完了!我们向门户添加了一个新的“悬赏计划提交”内容项。

Updating an existing Bounty Program Submission content item

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

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

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

>>> 'Changes saved' in browser.contents
True
>>> 'New Bounty Program Submission Sample' in browser.contents
True

Removing a/an Bounty Program Submission content item

如果我们转到主页,我们可以看到一个标签,上面写着“新悬赏计划提交” “全局导航”选项卡中的“示例”标题。

>>> browser.open(portal_url)
>>> 'New Bounty Program Submission Sample' in browser.contents
True

现在我们要删除“new bounty program submission sample”对象。首先我们 转到“内容”选项卡,选择“新悬赏计划提交示例” 删除。

>>> browser.getLink('Contents').click()
>>> browser.getControl('New Bounty Program Submission Sample').click()

我们点击“删除”按钮。

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

所以,如果我们回到主页,就不再有“新的赏金计划提交” “示例”选项卡。

>>> browser.open(portal_url)
>>> 'New Bounty Program Submission Sample' in browser.contents
False

Adding a new Bounty Program Submission 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()

我们选择“悬赏计划提交”和C单击“添加”按钮进入“添加”窗体。

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

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

>>> browser.getControl(name='title').value = 'Bounty Program Submission 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)

Contributors

  • mylan,作者:quintagroup.com
  • aclark at aclark.net,维护者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JPA从1自动生成id?   java JSONException:CourseVide没有值   在Java中使用身份和访问管理   java观察者设计如何访问方法。调用范围?   试图从Java源代码调用JavaScript函数   java How to Fix无法解析Android中的方法“setContentView”   java如何从非结构化日志文件中提取json字符串?   将java布尔结果转换为字符串值   java无法调试servlet Eclipse+Glassfish   java是检查布尔值数组是否包含true的最快方法   java JFrame不会显示在ubuntu上   面向Web应用的javascript图像编辑   使用Hadoop自定义数据类型biginsghts时出现java EOF异常   选择尽可能多的非重叠段时超出了java时间限制   从Firebase获取数据列表并在不同活动/片段中共享的java最佳实践   使用SimpleCursorAdapter时出现java空指针异常   java以升序将元素插入到多链接列表中   支持TDD的java Eclipse插件   客户端无法从Java代码向服务器发送命令