一个页面,它以与rss portlet相同的方式显示rss提要(或多个提要的聚合)
jyu.rsslisting的Python项目详细描述
RSS Listing是一种内容类型,它在 与默认的rss portlet相同。
Public resources
RSS列表为其内容类型图标安装公共资源++resource++jyu.rsslisting.images/rsslisting_icon.gif:
>>> from Products.Five.testbrowser import Browser >>> browser = Browser(); portal_url = self.portal.absolute_url() >>> browser.open(portal_url + "/++resource++jyu.rsslisting.images/rsslisting_icon.gif")
以及样式表的++resource++jyu.rsslisting.styles/rsslisting.css:
>>> browser.open(portal_url + "/++resource++jyu.rsslisting.styles/rsslisting.css")
Creating content
默认情况下,全局不允许添加RSS列表让我们 使其更易于测试:
>>> from Products.CMFCore.utils import getToolByName >>> portal_types = getToolByName(self.portal, "portal_types") >>> rss_listing = portal_types.get("RSS Listing") >>> rss_listing <DynamicViewTypeInformation at /plone/portal_types/RSS Listing> >>> rss_listing.global_allow = True >>> rss_listing.global_allow True
现在rss列表可由任何contributor添加。让我们
打开首页:
>>> browser.open(portal_url)
输入登录详细信息:
>>> browser.getControl(name='__ac_name').value = 'contributor' >>> browser.getControl(name='__ac_password').value = 'secret'
然后登录:
>>> browser.getControl(name='submit').click() >>> "You are now logged in" in browser.contents True
现在我们应该可以在add item菜单中看到rss列表:
>>> browser.getLink(id='rss-listing').url.endswith("createObject?type_name=RSS+Listing") True
添加单个rss列表
从add item菜单中单击它:
>>> browser.getLink(id='rss-listing').click()
输入RSS信息:
>>> browser.getControl(name='title').value = "Slashdot" >>> browser.getControl(name='description').value = "Yesterday's news!" >>> browser.getControl(name='url').value = "http://rss.slashdot.org/Slashdot/slashdot" >>> browser.getControl(name='count').value = "10" >>> browser.getControl(name='timeout').value = "100"
并提交表格:
>>> browser.getControl(name='form_submit').click()
现在已经创建了一个新的rss列表:
>>> 'slashdot' in self.portal.objectIds() True
Publishing content
默认情况下,rss列表可以由任何reviewer发布。让我们
注销:
>>> browser.getLink('Log out').click()
打开首页:
>>> browser.open(portal_url)
输入登录详细信息:
>>> browser.getControl(name='__ac_name').value = 'reviewer' >>> browser.getControl(name='__ac_password').value = 'secret'
然后登录:
>>> browser.getControl(name='submit').click() >>> "You are now logged in" in browser.contents True
发布rss列表
导航到内容:
>>> browser.open(portal_url + "/slashdot")
并发布:
>>> browser.getLink('Publish').click()
Viewing content
发布的rss列表应该对每个人都可见。让我们
注销:
>>> browser.getLink('Log out').click()
导航到内容:
>>> browser.open("%(portal_url)s/slashdot" % vars())
RSS列表正在呈现:
>>> "Yesterday's news!" in browser.contents True
需要10个feed项:
>>> browser.contents.count("<a href=\"http://rss.slashdot.org/") 10