[Testbot] Plone 5.0 - Python 2.7 - Build # 2071 - Regression! - 2 failure(s)

jenkins at plone.org jenkins at plone.org
Sat Mar 29 21:57:33 UTC 2014


-------------------------------------------------------------------------------
Plone 5.0 - Python 2.7 - Build # 2071 - Failure!
-------------------------------------------------------------------------------

http://jenkins.plone.org/job/plone-5.0-python-2.7/2071/


-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------

Repository: plone.app.contentlisting
Branch: refs/heads/master
Date: 2014-03-29T21:59:41+01:00
Author: Paul Roeland (polyester) <paula at polyester.org>
Commit: https://github.com/plone/plone.app.contentlisting/commit/52c2999edbd0ff077dba55e76f7aa99a4f45bffc

move README to /docs folder

Files changed:
A README.rst
A docs/README.rst
M setup.py
D README.txt

diff --git a/README.rst b/README.rst
new file mode 120000
index 0000000..cffceba
--- /dev/null
+++ b/README.rst
@@ -0,0 +1 @@
+docs/README.rst
\ No newline at end of file
diff --git a/README.txt b/README.txt
deleted file mode 100644
index ba5b71b..0000000
--- a/README.txt
+++ /dev/null
@@ -1,241 +0,0 @@
-=============================================================================
-Listing and working with Plone content objects using plone.app.contentlisting
-=============================================================================
-
-This is valid for Plone 4.1 upwards.
-
-Many of the operations for customizations, templates, views and portlets in
-Plone are related to lists of content objects. Their sources can be different,
-although usually they are some sort of catalog search, the contents of a
-particular folder or a list of objects from a relation.
-
-To make it simpler to work with these, we have made plone.app.contentlisting,
-which ensures that lists of content objects always behave in the same way and
-according to predefined interfaces, regardless of what the source of the
-objects are. The integrator shouldn't have to care whether the list of objects
-came from the catalog, an ORM or they are the actual objects.
-
-==================================
-Making or getting a contentListing
-==================================
-
-The typical way to get a contentlisting is to call one of two built-in views:
-
---------------------------------
-Listing the contents of a folder
---------------------------------
-
-In Page templates getting the contents of a folder is as simple as this::
-
-  context/@@folderListing
-
-Every template-writer's dream ;)
-
-A real example of listing the titles of the content objects of a folder::
-
-  <ul>
-    <li tal:repeat="item context/@@folderListing" tal:content="item/Title"/>
-  </ul>
-
-The context in which it is called defines which folder is listed.
-
-You can also use Python expressions to be able to pass parameters, like which
-content type or review state you want to use::
-
-  <li tal:repeat="item python:context.restrictedTraverse('@@folderListing')(portal_type='Document')">
-
-Batching can be done like this::
-
-  <ul tal:define="
-      Batch python:modules['Products.CMFPlone'].Batch;
-      b_size python:int(request.get('b_size', 20));
-      b_start python:int(request.get('b_start', 0));
-      results python:context.restrictedTraverse('@@folderListing')(batch=True, b_size=b_size, b_start=b_start);
-      batch python:Batch(results, b_size, b_start);">
-    <li tal:repeat="item results"
-        tal:content="item/Title" />
-    <div metal:use-macro="context/batch_macros/macros/navigation" />
-  </ul>
-
-Note that you iterate directly over the results that you get from
-``@@folderListing``.  The definition of ``batch`` is only used in the
-``batch_macros`` call.
-
-In Python a ContentListing of a particular folder's contents can be fetched
-by using::
-
-    >>> path.to.your.folder.restrictedTraverse('@@folderListing')()
-
-The folderListing view called above implements all the logic the old
-getFolderContents script in Plone used to do. The old script has been left in
-place to not break compatibility for customizations and add-ons that might
-depend on its particular return values.
-
-------------------------------
-Rolling your own with adaption
-------------------------------
-
-At the time of writing, all parts of Plone do not yet return 'contentlistings'
-when asked for lists of content. It was impossible to change this everywhere
-without breaking backwards compatibility. Therefore you may have to convert
-your sequence of stuff to a contentlisting manually.
-
-To do this, you need to import and adapt::
-
-    >>> from plone.app.contentlisting.interfaces import IContentListing
-    >>> catalog = getToolByName(self.portal, 'portal_catalog')
-    >>> results = catalog.searchResults()
-    >>> contentlist = IContentListing(results)
-    >>> print(contentlist)
-    <plone.app.contentlisting.contentlisting.ContentListing object ...>
-
-================================================
-The contentListing, its properties and behaviors
-================================================
-
-Now, you no longer need to worry whether you have a bunch of catalog brains or
-the actual objects (or fake objects for that sake). As long as you have a
-contentlisting, you know what you can expect from it. You also know what you
-can expect from each item within it - a content listing object.
-
-The content listing is a normal iterator that we can loop over and do all sorts
-of stuff you normally can do with sequences.
-
-====================================================
-contentListingObjects, the items inside the sequence
-====================================================
-
-The `contentListingObjects` are wrapper objects, each representing a content
-object in the site. Their intention is to be predictable so you can always call
-at least a common base set of methods on the objects listed.
-
-You do not have to be aware whether the object originates from a brain, a full
-object or something else. If you try to call a method or access an attribute of
-the object and the wrapper is not aware of it, it will silently fetch the real
-object and delegate the call to it. This means you can treat your objects as
-you would any other -- even writing to it.
-
---------------------------------
-Methods of contentlistingObjects
---------------------------------
-
-getId() -
-  Returns the object id in its container for example `my-example-page`.
-
-getObject() -
-  Returns the real object
-
-def getDataOrigin() -
-  The origin of the data for the object.
-
-getPath() -
-  Path to the object, relative to the site root for example
-  ``/artifacts/my-example-page``
-
-getURL()-
-  Full url to the object, including the site root for example
-  ``http://my.site.com/artifacts/my-example-page``
-
-uuid() -
-  Unique content identifier for example an uuid from `plone.uuid` The only real
-  point of it is to be unique. It can for example look like this
-  `b0e80776-d41d-4f48-bf9e-7cb1aebabad5`.
-
-getIcon() -
-  Icon for the object. Returns an icon object from plone.app.layout.
-  If printed as a string, it will produce an HTML tag for the icon. Check
-  plone.app.layout for more info.
-
-getSize() -
-  Size in bytes for example `24`.
-
-review_state() -
-  Workflow review state for example `published`.
-
-ContentTypeClass() -
-  A normalized type name that identifies the object in listings. Used for CSS
-  styling, for example `content-type-page`.
-
-Title() -
-  Return a single string, the DCMI Title element (resource name).
-  For example `My example page`.
-
-Description() -
-  Return the DCMI Description element (resource summary). Result is a natural
-  language description of this object. Description is a plain text string
-  describing the object. It should not contain HTML or similar.
-
-Type() -
-  Return the DCMI Type element (resource type). Result is a human-readable
-  message id for the resource (typically the Title of its type info object).
-  For example `u'Page'` from the `plone` domain.
-
-listCreators() -
-  Return a sequence of DCMI Creator elements (resource authors).
-  Depending on the implementation, this returns the full name(s) of the
-  author(s) of the content object or their ids. For example `Jane Smith`.
-
-Creator() -
-  Return the first DCMI Creator element, or an empty string.
-  For example `Jane Smith`.
-
-Subject() -
-  Return a sequence of DCMI Subject elements (resource keywords).
-  Result is zero or more keywords associated with the content object.
-  These are the tags in Plone. For example ``['Ecology', 'Sustainability']``.
-
-Publisher() -
-  Return the DCMI Publisher element (resource publisher). Result is the full
-  formal name of the entity or person responsible for publishing the resource.
-  For example `Plone Foundation`.
-
-listContributors() -
-  Return a sequence of DCMI Contributor elements (resource collaborators).
-  Return zero or more collaborators (beyond those returned by `listCreators`).
-
-Contributors() -
-  Deprecated alias for `listContributors`.
-
-Date(zone=None) -
-  Return the DCMI Date element (default resource date). Result is a string,
-  formatted 'YYYY-MM-DD H24:MN:SS TZ'. The zone keyword is not yet supported
-  (but is part of the DublinCore interface and has to stay)
-
-CreationDate(zone=None) -
-  Return the DCMI Date element (date resource created). Result is a string,
-  formatted 'YYYY-MM-DD H24:MN:SS TZ'. The zone keyword is not yet supported
-  (but is part of the DublinCore interface and has to stay)
-
-EffectiveDate(zone=None) -
-  Return the DCMI Date element (date resource becomes effective). Result is a
-  string, formatted 'YYYY-MM-DD H24:MN:SS TZ', or None. The zone keyword is
-  not yet supported (but is part of the DublinCore interface and has to stay)
-
-ExpirationDate(zone=None) -
-  Return the DCMI Date element (date resource expires). Result is a string,
-  formatted 'YYYY-MM-DD H24:MN:SS TZ', or None. The zone keyword is not yet
-  supported (but is part of the DublinCore interface and has to stay)
-
-ModificationDate(zone=None) -
-  DCMI Date element - date resource last modified. Result is a string,
-  formatted 'YYYY-MM-DD H24:MN:SS TZ'. The zone keyword is not yet supported
-  (but is part of the DublinCore interface and has to stay)
-
-Format() -
-  Return the DCMI Format element (resource format).
-  Result is the resource's MIME type (e.g. `text/html`, `image/png`, etc.).
-
-Identifier() -
-  Return the DCMI Identifier element (resource ID). Result is a unique ID
-  (a URL) for the resource.
-
-Language() -
-  DCMI Language element (resource language). Result it the RFC language code
-  (e.g. `en-US`, `pt-BR`) for the resource.
-
-Rights() -
-  Return the DCMI Rights element (resource copyright). Return a string
-  describing the intellectual property status, if any, of the resource.
-
-isVisibleInNav() -
-  Return whether this object will be visible in a navigation view.
diff --git a/docs/README.rst b/docs/README.rst
new file mode 100644
index 0000000..ba5b71b
--- /dev/null
+++ b/docs/README.rst
@@ -0,0 +1,241 @@
+=============================================================================
+Listing and working with Plone content objects using plone.app.contentlisting
+=============================================================================
+
+This is valid for Plone 4.1 upwards.
+
+Many of the operations for customizations, templates, views and portlets in
+Plone are related to lists of content objects. Their sources can be different,
+although usually they are some sort of catalog search, the contents of a
+particular folder or a list of objects from a relation.
+
+To make it simpler to work with these, we have made plone.app.contentlisting,
+which ensures that lists of content objects always behave in the same way and
+according to predefined interfaces, regardless of what the source of the
+objects are. The integrator shouldn't have to care whether the list of objects
+came from the catalog, an ORM or they are the actual objects.
+
+==================================
+Making or getting a contentListing
+==================================
+
+The typical way to get a contentlisting is to call one of two built-in views:
+
+--------------------------------
+Listing the contents of a folder
+--------------------------------
+
+In Page templates getting the contents of a folder is as simple as this::
+
+  context/@@folderListing
+
+Every template-writer's dream ;)
+
+A real example of listing the titles of the content objects of a folder::
+
+  <ul>
+    <li tal:repeat="item context/@@folderListing" tal:content="item/Title"/>
+  </ul>
+
+The context in which it is called defines which folder is listed.
+
+You can also use Python expressions to be able to pass parameters, like which
+content type or review state you want to use::
+
+  <li tal:repeat="item python:context.restrictedTraverse('@@folderListing')(portal_type='Document')">
+
+Batching can be done like this::
+
+  <ul tal:define="
+      Batch python:modules['Products.CMFPlone'].Batch;
+      b_size python:int(request.get('b_size', 20));
+      b_start python:int(request.get('b_start', 0));
+      results python:context.restrictedTraverse('@@folderListing')(batch=True, b_size=b_size, b_start=b_start);
+      batch python:Batch(results, b_size, b_start);">
+    <li tal:repeat="item results"
+        tal:content="item/Title" />
+    <div metal:use-macro="context/batch_macros/macros/navigation" />
+  </ul>
+
+Note that you iterate directly over the results that you get from
+``@@folderListing``.  The definition of ``batch`` is only used in the
+``batch_macros`` call.
+
+In Python a ContentListing of a particular folder's contents can be fetched
+by using::
+
+    >>> path.to.your.folder.restrictedTraverse('@@folderListing')()
+
+The folderListing view called above implements all the logic the old
+getFolderContents script in Plone used to do. The old script has been left in
+place to not break compatibility for customizations and add-ons that might
+depend on its particular return values.
+
+------------------------------
+Rolling your own with adaption
+------------------------------
+
+At the time of writing, all parts of Plone do not yet return 'contentlistings'
+when asked for lists of content. It was impossible to change this everywhere
+without breaking backwards compatibility. Therefore you may have to convert
+your sequence of stuff to a contentlisting manually.
+
+To do this, you need to import and adapt::
+
+    >>> from plone.app.contentlisting.interfaces import IContentListing
+    >>> catalog = getToolByName(self.portal, 'portal_catalog')
+    >>> results = catalog.searchResults()
+    >>> contentlist = IContentListing(results)
+    >>> print(contentlist)
+    <plone.app.contentlisting.contentlisting.ContentListing object ...>
+
+================================================
+The contentListing, its properties and behaviors
+================================================
+
+Now, you no longer need to worry whether you have a bunch of catalog brains or
+the actual objects (or fake objects for that sake). As long as you have a
+contentlisting, you know what you can expect from it. You also know what you
+can expect from each item within it - a content listing object.
+
+The content listing is a normal iterator that we can loop over and do all sorts
+of stuff you normally can do with sequences.
+
+====================================================
+contentListingObjects, the items inside the sequence
+====================================================
+
+The `contentListingObjects` are wrapper objects, each representing a content
+object in the site. Their intention is to be predictable so you can always call
+at least a common base set of methods on the objects listed.
+
+You do not have to be aware whether the object originates from a brain, a full
+object or something else. If you try to call a method or access an attribute of
+the object and the wrapper is not aware of it, it will silently fetch the real
+object and delegate the call to it. This means you can treat your objects as
+you would any other -- even writing to it.
+
+--------------------------------
+Methods of contentlistingObjects
+--------------------------------
+
+getId() -
+  Returns the object id in its container for example `my-example-page`.
+
+getObject() -
+  Returns the real object
+
+def getDataOrigin() -
+  The origin of the data for the object.
+
+getPath() -
+  Path to the object, relative to the site root for example
+  ``/artifacts/my-example-page``
+
+getURL()-
+  Full url to the object, including the site root for example
+  ``http://my.site.com/artifacts/my-example-page``
+
+uuid() -
+  Unique content identifier for example an uuid from `plone.uuid` The only real
+  point of it is to be unique. It can for example look like this
+  `b0e80776-d41d-4f48-bf9e-7cb1aebabad5`.
+
+getIcon() -
+  Icon for the object. Returns an icon object from plone.app.layout.
+  If printed as a string, it will produce an HTML tag for the icon. Check
+  plone.app.layout for more info.
+
+getSize() -
+  Size in bytes for example `24`.
+
+review_state() -
+  Workflow review state for example `published`.
+
+ContentTypeClass() -
+  A normalized type name that identifies the object in listings. Used for CSS
+  styling, for example `content-type-page`.
+
+Title() -
+  Return a single string, the DCMI Title element (resource name).
+  For example `My example page`.
+
+Description() -
+  Return the DCMI Description element (resource summary). Result is a natural
+  language description of this object. Description is a plain text string
+  describing the object. It should not contain HTML or similar.
+
+Type() -
+  Return the DCMI Type element (resource type). Result is a human-readable
+  message id for the resource (typically the Title of its type info object).
+  For example `u'Page'` from the `plone` domain.
+
+listCreators() -
+  Return a sequence of DCMI Creator elements (resource authors).
+  Depending on the implementation, this returns the full name(s) of the
+  author(s) of the content object or their ids. For example `Jane Smith`.
+
+Creator() -
+  Return the first DCMI Creator element, or an empty string.
+  For example `Jane Smith`.
+
+Subject() -
+  Return a sequence of DCMI Subject elements (resource keywords).
+  Result is zero or more keywords associated with the content object.
+  These are the tags in Plone. For example ``['Ecology', 'Sustainability']``.
+
+Publisher() -
+  Return the DCMI Publisher element (resource publisher). Result is the full
+  formal name of the entity or person responsible for publishing the resource.
+  For example `Plone Foundation`.
+
+listContributors() -
+  Return a sequence of DCMI Contributor elements (resource collaborators).
+  Return zero or more collaborators (beyond those returned by `listCreators`).
+
+Contributors() -
+  Deprecated alias for `listContributors`.
+
+Date(zone=None) -
+  Return the DCMI Date element (default resource date). Result is a string,
+  formatted 'YYYY-MM-DD H24:MN:SS TZ'. The zone keyword is not yet supported
+  (but is part of the DublinCore interface and has to stay)
+
+CreationDate(zone=None) -
+  Return the DCMI Date element (date resource created). Result is a string,
+  formatted 'YYYY-MM-DD H24:MN:SS TZ'. The zone keyword is not yet supported
+  (but is part of the DublinCore interface and has to stay)
+
+EffectiveDate(zone=None) -
+  Return the DCMI Date element (date resource becomes effective). Result is a
+  string, formatted 'YYYY-MM-DD H24:MN:SS TZ', or None. The zone keyword is
+  not yet supported (but is part of the DublinCore interface and has to stay)
+
+ExpirationDate(zone=None) -
+  Return the DCMI Date element (date resource expires). Result is a string,
+  formatted 'YYYY-MM-DD H24:MN:SS TZ', or None. The zone keyword is not yet
+  supported (but is part of the DublinCore interface and has to stay)
+
+ModificationDate(zone=None) -
+  DCMI Date element - date resource last modified. Result is a string,
+  formatted 'YYYY-MM-DD H24:MN:SS TZ'. The zone keyword is not yet supported
+  (but is part of the DublinCore interface and has to stay)
+
+Format() -
+  Return the DCMI Format element (resource format).
+  Result is the resource's MIME type (e.g. `text/html`, `image/png`, etc.).
+
+Identifier() -
+  Return the DCMI Identifier element (resource ID). Result is a unique ID
+  (a URL) for the resource.
+
+Language() -
+  DCMI Language element (resource language). Result it the RFC language code
+  (e.g. `en-US`, `pt-BR`) for the resource.
+
+Rights() -
+  Return the DCMI Rights element (resource copyright). Return a string
+  describing the intellectual property status, if any, of the resource.
+
+isVisibleInNav() -
+  Return whether this object will be visible in a navigation view.
diff --git a/setup.py b/setup.py
index 88e1ebb..320b8b5 100644
--- a/setup.py
+++ b/setup.py
@@ -1,12 +1,20 @@
 from setuptools import setup, find_packages
 
+import os
+
+def read(*rnames):
+    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
 version = '1.1.0.dev0'
 
+long_description = \
+    read('docs', 'README.rst') + \
+    read('CHANGES.txt')
+
 setup(name='plone.app.contentlisting',
       version=version,
       description="Listing of content for the Plone CMS",
-      long_description=open("README.txt").read() + "\n" +
-                       open("CHANGES.txt").read(),
+      long_description=long_description,
       classifiers=[
         "Framework :: Plone",
         "Programming Language :: Python",




-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 21138 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140329/1cf3d513/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 138795 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140329/1cf3d513/attachment-0003.obj>


More information about the Testbot mailing list