描述物理对象的内容类型

Products.Object的Python项目详细描述


…内容:

…音符!
----
更新以下URL以指向您的:

-代码库
-错误跟踪器
-问题/评论反馈邮件
(不要设置真正的邮件,以避免垃圾邮件)


如果不使用,请将其删除。

-代码库:http://svn.somewhere.com/。.
-向某个邮件列表中的问题和评论
-在http://bug.somewhere.com/上报告错误。




更改历史
********



==

<0.1(xx xx-xx-xx)
----

-使用zopeskel创建菜谱
[david jonas]


*****************


简介
==

这是一个全面的功能测试。这里的重点是测试用户可能输入和看到的内容,并且系统在很大程度上是作为一个黑盒进行测试的。
我们也使用plonetestcase来设置这个测试,因此我们有一个完整的plone站点可以使用。我们*可以*检查门户的状态,例如使用
self.portal和self.folder,但由于您没有将系统视为一个黑盒,因此常常会对它感到不快。另外,如果您使用self.set roles()之类的调用登录或设置
角色,这些不会反映在作为单独会话运行的测试浏览器中。

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

首先,我们必须执行一些设置。我们使用带有5个的testbrowser,因为它提供了正确的zope 2集成。不过,大多数
文档都在下面的zope.testbrower包中。

>;>;来自products.five.testbrowser import browser
>;>;browser=browser()
>;>;portal_url=self.portal.absolute_url()

编写和调试TestBrowser测试。它允许我们在错误日志中查看所有错误消息。


>>self.portal.error\u log.\u ignored\u exceptions=()

我们将使用plonetestcase中的默认用户:


>;>from products.plonetestcase.setup import portal_owner,default_password

因为附加主题或产品可能删除或隐藏登录portlet,此测试将使用plone附带的登录表单。

>;>browser.open(portal_url+'/login_form')
>;>browser.getcontrol(name='''u ac_name').value=portal_owner
>;>browser.getcontrol(name=''''u ac_password').value=default_password
>;>browser.getcontrol(name='submit').click()

在这里,我们设置登录表单上字段的值,然后模拟
提交单击。然后,我们将确保获得友好的登录消息:

>;>;"您现在已登录"在浏览器中。内容
true

在这里-*-
对象内容类型
=


在本节中,我们通过执行添加、更新和删除对象内容项等基本操作来测试对象内容类型。———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————在这种情况下,我们选择
"对象",然后单击"添加"按钮进入"添加"窗体。

>;>;browser.getcontrol('object').click()
>;>;browser.getcontrol(name='form.button.add').click()
>;>;>;browser.getcontrol(name='form.button.add').contents

e填写表格并提交。

>;>browser.getcontrol(name='title')。value='object sample'
>;。>;browser.getcontrol('save')。在浏览器中单击()
>;>;'changes saved'。内容
正确


,我们就完成了!我们在门户中添加了一个新的"对象"内容项。

更新现有的对象内容项
---------------------------

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

>;browser.getlink('edit')。click()
>;>;browser.getcontrol(name='title').value='new object sample'
>;>;browser.getcontrol('save').click()


>我们检查是否应用了更改。

>;'changes saved'在浏览器中。内容
true
>;'new object sample'在browser.c中内容
true


删除对象内容项
浏览器中的"w object sample"。contents
true


现在我们要删除"new object sample"对象。首先,我们转到"内容"选项卡并选择"新对象示例"进行删除。


>;>;browser.getlink('contents').click()
>;>;browser.getcontrol('new object sample').click()

我们单击"删除"按钮。

>;browser.get控件('delete')。在浏览器中单击()
>;>;'item(s)deleted'。内容
true

因此,如果返回主页,将不再有"new object
sample"选项卡。

>;>;浏览器。在浏览器中打开(门户网站URL)
>;'new object sample'。tents
false


添加一个新的对象内容项作为参与者
——分配了
参与者角色的成员。

>;>;browser.getlink('log out').click()
>;>;browser.open(portal_url+'/login_form')
>;>;browser.getcontrol(name='''uu ac_name').value='contributor'
>;>;browser.getcontrol(name='\u ac_password')。value=默认的_password
>>>;浏览器。getcontrol(name='submit')。单击()
>>>;浏览器。打开(门户网站URL)


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

>;浏览器。getlink("添加新内容")。单击()

我们选择"objec"t'并单击"添加"按钮以进入添加表单。

>;>;browser.getcontrol('object')。click()
>;>;browser.getcontrol(name='form.button.add')。click()
>;>;>;浏览器中的"object"。contents
true

/>
>;>browser.getcontrol(name='title').value='object sample'
>;>browser.getcontrol('save').click()
>;>browser中的'changes saved'。contents
true

我们添加了一个以参与者身份登录的新对象内容项。

最后,让我们以管理者身份重新登录。

>;>;browser.getlink('log out').click()
>;>;browser.open(portal\'url+'/log in\'form')
>;>;browser.getcontrol(name='''uu ac\'name').value=portal_owner
>;>browser.getcontrol(name=''uu ac_password').value=default_password
>;>browser.getcontrol(name='submit').click()
>;>browser.open(portal_url)





*****




下载********

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

推荐PyPI第三方库


热门话题
java在安卓中为循环添加延迟,而不会暂停UI线程   java为什么接口没有一种方法要求实现类引用它们自己的类型?   ruby+appium或java+appium用于移动本机应用程序自动化   java我可以使用WeakHashMap而不是HashMap吗   java在字符串中查找常见的序列   java如何在不使用ArrayList的情况下从数组中删除对象?   java背景不会出现在添加的paintComponents()之后   java Swagger/OpenapiAnnotations:如何使用$ref生成allOf?   java如何使用AgendaCalendarView(开源)?   Java Crystal Report SDK报告和子报告   java如何制作包含构建编号的TeamCity工件?   java JMagick方法setGeometry of MontageInfo类崩溃JMV   java如何从wsdl创建独立应用程序?