一个页面,它以与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添加。让我们

  1. 打开首页:

    >>> browser.open(portal_url)
    
  2. 输入登录详细信息:

    >>> browser.getControl(name='__ac_name').value = 'contributor'
    >>> browser.getControl(name='__ac_password').value = 'secret'
    
  3. 然后登录:

    >>> 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列表

  1. add item菜单中单击它:

    >>> browser.getLink(id='rss-listing').click()
    
  2. 输入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"
    
  3. 并提交表格:

    >>> browser.getControl(name='form_submit').click()
    

现在已经创建了一个新的rss列表

>>> 'slashdot' in self.portal.objectIds()
True

Publishing content

默认情况下,rss列表可以由任何reviewer发布。让我们

  1. 注销:

    >>> browser.getLink('Log out').click()
    
  2. 打开首页:

    >>> browser.open(portal_url)
    
  3. 输入登录详细信息:

    >>> browser.getControl(name='__ac_name').value = 'reviewer'
    >>> browser.getControl(name='__ac_password').value = 'secret'
    
  4. 然后登录:

    >>> browser.getControl(name='submit').click()
    >>> "You are now logged in" in browser.contents
    True
    

发布rss列表

  1. 导航到内容:

    >>> browser.open(portal_url + "/slashdot")
    
  2. 并发布:

    >>> browser.getLink('Publish').click()
    

Viewing content

发布的rss列表应该对每个人都可见。让我们

  1. 注销:

    >>> browser.getLink('Log out').click()
    
  2. 导航到内容:

    >>> 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

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

推荐PyPI第三方库


热门话题
java StoredProcedureCall 1x Varchar输出1x游标输出   java StackOverflower运行时错误   算法Java基准测试:确保对象在超出范围后不被重用   java在SpringDataNeo4j中使用RelationshipEntity保存节点的正确方法是什么?   命令行参数设置登录java的属性   Java泛型AnyType,如何允许调用任何方法?   java如何检查Html字符串和字符串   sql如何插入一个日期,然后从java执行的存储过程中向oracle数据库中插入的日期添加小时、分钟和秒   java 安卓 3布局相同的活动   安卓应用程序中的java毕达哥拉斯   使用javaw在批处理文件中运行JAR的服务会在process explorer XYNTService中产生多个java进程   java需要在Derby中编写正确的查询   多线程Java在缓存中为多个线程保存变量   持久化java实体引用问题   java在SpringMVC应用程序中使用本地线程安全吗?   JavaSwing,100个文本字段都有类似的任务,所以我想写一个函数来完成这个任务   java我们在新字符串(“literal”)中放置的字符串文字发生了什么变化;   java注入需要在GUI中使用枚举的对象   在Spark SQL中加载JDBC表时java数据不正确