[Testbot] Plone 5.0 - Python 2.7 - Build # 3126 - Still failing! - 0 failure(s)

jenkins at plone.org jenkins at plone.org
Tue Aug 26 04:25:23 UTC 2014


-------------------------------------------------------------------------------
Plone 5.0 - Python 2.7 - Build # 3126 - Still Failing!
-------------------------------------------------------------------------------

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


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

Repository: plone.app.portlets
Branch: refs/heads/master
Date: 2014-08-26T01:17:41+02:00
Author: Gil Forcada (gforcada) <gforcada at gnome.org>
Commit: https://github.com/plone/plone.app.portlets/commit/768507fc9196c048d99aa48f5dcccc6c5fe45652

Rename .txt to .rst

Files changed:
A plone/app/portlets/TODO.rst
A plone/app/portlets/tests/testMemberDashboard.rst
A plone/app/portlets/tests/testViewName.rst
M plone/app/portlets/tests/testDoctests.py
D plone/app/portlets/TODO.txt
D plone/app/portlets/tests/testMemberDashboard.txt
D plone/app/portlets/tests/testViewName.txt

diff --git a/plone/app/portlets/TODO.rst b/plone/app/portlets/TODO.rst
new file mode 100644
index 0000000..21f6bc3
--- /dev/null
+++ b/plone/app/portlets/TODO.rst
@@ -0,0 +1,14 @@
+========================
+plone.app.portlets to-do
+========================
+
+  Decisions
+
+    o May need a way to filter addable portlets by permission (e.g. some
+        portlets are only available to some groups of users)
+
+    o Category mappings are created on-the-fly in the namespace traversal
+      adapters, which many not be ideal (even though these are protected by
+      ManagePortal)
+
+        - may be sufficient to create when the management views are invoked
diff --git a/plone/app/portlets/TODO.txt b/plone/app/portlets/TODO.txt
deleted file mode 100644
index 21f6bc3..0000000
--- a/plone/app/portlets/TODO.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-========================
-plone.app.portlets to-do
-========================
-
-  Decisions
-
-    o May need a way to filter addable portlets by permission (e.g. some
-        portlets are only available to some groups of users)
-
-    o Category mappings are created on-the-fly in the namespace traversal
-      adapters, which many not be ideal (even though these are protected by
-      ManagePortal)
-
-        - may be sufficient to create when the management views are invoked
diff --git a/plone/app/portlets/tests/testDoctests.py b/plone/app/portlets/tests/testDoctests.py
index 960390f..875b809 100644
--- a/plone/app/portlets/tests/testDoctests.py
+++ b/plone/app/portlets/tests/testDoctests.py
@@ -8,7 +8,7 @@
 def test_suite():
     suite = TestSuite()
     OPTIONFLAGS = (doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE)
-    for testfile in ('testViewName.txt', 'testMemberDashboard.txt'):
+    for testfile in ('testViewName.rst', 'testMemberDashboard.rst'):
         suite.addTest(FunctionalDocFileSuite(testfile,
                                 optionflags=OPTIONFLAGS,
                                 package="plone.app.portlets.tests",
diff --git a/plone/app/portlets/tests/testMemberDashboard.rst b/plone/app/portlets/tests/testMemberDashboard.rst
new file mode 100644
index 0000000..9b8a20f
--- /dev/null
+++ b/plone/app/portlets/tests/testMemberDashboard.rst
@@ -0,0 +1,102 @@
+Setup::
+
+    >>> user1, pass1 = 'user1', 'pass1'
+    >>> user2, pass2 = 'user2', 'pass2'
+    >>> uf = portal.acl_users
+    >>> uf.userFolderAddUser(user1, pass1, ['Member'], [])
+    >>> uf.userFolderAddUser(user2, pass2, ['Member'], [])
+    >>> import transaction
+    >>> transaction.commit()
+    >>> import re
+    >>> from plone.protect.authenticator import createToken
+
+
+bug: 11174: Portal Members can't add portlets to their dashboard
+----------------------
+Login as the 'user1' user
+
+    >>> browser = self.browser
+    >>> portalURL = portal.absolute_url()
+
+    >>> browser.open(portalURL + '/login_form')
+    >>> browser.getControl(name='__ac_name').value = 'user1'
+    >>> browser.getControl(name='__ac_password').value = 'pass1'
+    >>> browser.getControl(name='submit').click()
+
+Go to the dashboard and check that portlets are addable here
+
+    >>> browser.open(portal.absolute_url()+'/@@dashboard')
+    >>> browser.getLink('Edit').click()
+    >>> 'Add portlet' in browser.contents
+    True
+
+Let's try to add a Search portlet and then remove it
+
+    >>> bool(re.search('\<\/span\>\s+Search\s+\<\/div\>', browser.contents))
+    False
+    >>> browser.getControl(name=':action',index=0).value = ['/++dashboard++plone.dashboard1+user1/+/portlets.Search']
+    >>> browser.getForm(index=1).submit()
+    >>> browser.getControl('Save').click()  # This submits the now shown add form.
+    >>> browser.open(portalURL+'/@@manage-dashboard')
+    >>> '/search/edit' in browser.contents
+    True
+    >>> browser.getControl(name="search-remove").click()
+    >>> '/search/edit' in browser.contents
+    False
+
+Now, let's try to add a portlet using the addview
+
+    >>> browser.open(portalURL+'/@@manage-dashboard')
+    >>> browser.open(portalURL + "/++dashboard++plone.dashboard1+user1/+/portlets.Search?referer="+portalURL)
+    >>> browser.getControl('Save').click()  # This submits the now shown add form.
+    >>> browser.open(portalURL+'/@@manage-dashboard')
+    >>> '/search/edit' in browser.contents
+    True
+    >>> browser.getControl(name="search-remove").click()
+    >>> '/search/edit' in browser.contents
+    False
+
+Using the addview, let's see that we cannot add a portlet for another user
+
+    >>> browser.open(portalURL+'/@@manage-dashboard')
+    >>> browser.open(portalURL + "/++dashboard++plone.dashboard1+user2/+/portlets.Search?referer="+portalURL)
+    >>> "Insufficient Privileges" in browser.contents
+    True
+
+    >>> browser.open(portalURL + '/logout')
+
+    >>> browser.open(portalURL + '/login_form')
+    >>> browser.getControl(name='__ac_name').value = 'user2'
+    >>> browser.getControl(name='__ac_password').value = 'pass2'
+    >>> browser.getControl(name='submit').click()
+
+    >>> browser.open(portalURL+'/@@manage-dashboard?_authenticator=' + createToken())
+    >>> bool(re.search('\<\/span\>\s+Search\s+\<\/div\>', browser.contents))
+    False
+
+Now, we try to open the @@manage-portlets view and also try to call the addview
+for a portlet. We shouldn't be able to do any of this
+
+    >>> browser.open(portalURL+'/@@manage-portlets?_authenticator=' + createToken())
+    >>> "Insufficient Privileges" in browser.contents
+    True
+    >>> browser.open(portalURL + "/++contextportlets++plone.leftcolumn/+/portlets.Search?_authenticator=" + createToken())
+    >>> "Insufficient Privileges" in browser.contents
+    True
+
+Finally, if we add the "Member" role to the "Portlets: Manage portlets" permission, we should be able to call
+those views
+
+    >>> portal.manage_permission('Portlets: Manage portlets', roles=['Manager', 'Member'], acquire=0)
+    >>> transaction.commit()
+    >>> browser.open(portalURL+'/@@manage-portlets?_authenticator=' + createToken())
+    >>> "Insufficient Privileges" in browser.contents
+    False
+    >>> bool(re.search('\<\/span\>\s+Search\s+\<\/div\>', browser.contents))
+    False
+    >>> browser.open(portalURL + "/++contextportlets++plone.leftcolumn/+/portlets.Search")
+    >>> "Insufficient Privileges" in browser.contents
+    False
+    >>> browser.getControl('Save').click()  # This submits the now shown add form.
+    >>> '/search/edit' in browser.contents
+    True
diff --git a/plone/app/portlets/tests/testMemberDashboard.txt b/plone/app/portlets/tests/testMemberDashboard.txt
deleted file mode 100644
index 9b8a20f..0000000
--- a/plone/app/portlets/tests/testMemberDashboard.txt
+++ /dev/null
@@ -1,102 +0,0 @@
-Setup::
-
-    >>> user1, pass1 = 'user1', 'pass1'
-    >>> user2, pass2 = 'user2', 'pass2'
-    >>> uf = portal.acl_users
-    >>> uf.userFolderAddUser(user1, pass1, ['Member'], [])
-    >>> uf.userFolderAddUser(user2, pass2, ['Member'], [])
-    >>> import transaction
-    >>> transaction.commit()
-    >>> import re
-    >>> from plone.protect.authenticator import createToken
-
-
-bug: 11174: Portal Members can't add portlets to their dashboard
-----------------------
-Login as the 'user1' user
-
-    >>> browser = self.browser
-    >>> portalURL = portal.absolute_url()
-
-    >>> browser.open(portalURL + '/login_form')
-    >>> browser.getControl(name='__ac_name').value = 'user1'
-    >>> browser.getControl(name='__ac_password').value = 'pass1'
-    >>> browser.getControl(name='submit').click()
-
-Go to the dashboard and check that portlets are addable here
-
-    >>> browser.open(portal.absolute_url()+'/@@dashboard')
-    >>> browser.getLink('Edit').click()
-    >>> 'Add portlet' in browser.contents
-    True
-
-Let's try to add a Search portlet and then remove it
-
-    >>> bool(re.search('\<\/span\>\s+Search\s+\<\/div\>', browser.contents))
-    False
-    >>> browser.getControl(name=':action',index=0).value = ['/++dashboard++plone.dashboard1+user1/+/portlets.Search']
-    >>> browser.getForm(index=1).submit()
-    >>> browser.getControl('Save').click()  # This submits the now shown add form.
-    >>> browser.open(portalURL+'/@@manage-dashboard')
-    >>> '/search/edit' in browser.contents
-    True
-    >>> browser.getControl(name="search-remove").click()
-    >>> '/search/edit' in browser.contents
-    False
-
-Now, let's try to add a portlet using the addview
-
-    >>> browser.open(portalURL+'/@@manage-dashboard')
-    >>> browser.open(portalURL + "/++dashboard++plone.dashboard1+user1/+/portlets.Search?referer="+portalURL)
-    >>> browser.getControl('Save').click()  # This submits the now shown add form.
-    >>> browser.open(portalURL+'/@@manage-dashboard')
-    >>> '/search/edit' in browser.contents
-    True
-    >>> browser.getControl(name="search-remove").click()
-    >>> '/search/edit' in browser.contents
-    False
-
-Using the addview, let's see that we cannot add a portlet for another user
-
-    >>> browser.open(portalURL+'/@@manage-dashboard')
-    >>> browser.open(portalURL + "/++dashboard++plone.dashboard1+user2/+/portlets.Search?referer="+portalURL)
-    >>> "Insufficient Privileges" in browser.contents
-    True
-
-    >>> browser.open(portalURL + '/logout')
-
-    >>> browser.open(portalURL + '/login_form')
-    >>> browser.getControl(name='__ac_name').value = 'user2'
-    >>> browser.getControl(name='__ac_password').value = 'pass2'
-    >>> browser.getControl(name='submit').click()
-
-    >>> browser.open(portalURL+'/@@manage-dashboard?_authenticator=' + createToken())
-    >>> bool(re.search('\<\/span\>\s+Search\s+\<\/div\>', browser.contents))
-    False
-
-Now, we try to open the @@manage-portlets view and also try to call the addview
-for a portlet. We shouldn't be able to do any of this
-
-    >>> browser.open(portalURL+'/@@manage-portlets?_authenticator=' + createToken())
-    >>> "Insufficient Privileges" in browser.contents
-    True
-    >>> browser.open(portalURL + "/++contextportlets++plone.leftcolumn/+/portlets.Search?_authenticator=" + createToken())
-    >>> "Insufficient Privileges" in browser.contents
-    True
-
-Finally, if we add the "Member" role to the "Portlets: Manage portlets" permission, we should be able to call
-those views
-
-    >>> portal.manage_permission('Portlets: Manage portlets', roles=['Manager', 'Member'], acquire=0)
-    >>> transaction.commit()
-    >>> browser.open(portalURL+'/@@manage-portlets?_authenticator=' + createToken())
-    >>> "Insufficient Privileges" in browser.contents
-    False
-    >>> bool(re.search('\<\/span\>\s+Search\s+\<\/div\>', browser.contents))
-    False
-    >>> browser.open(portalURL + "/++contextportlets++plone.leftcolumn/+/portlets.Search")
-    >>> "Insufficient Privileges" in browser.contents
-    False
-    >>> browser.getControl('Save').click()  # This submits the now shown add form.
-    >>> '/search/edit' in browser.contents
-    True
diff --git a/plone/app/portlets/tests/testViewName.rst b/plone/app/portlets/tests/testViewName.rst
new file mode 100644
index 0000000..efd5fc6
--- /dev/null
+++ b/plone/app/portlets/tests/testViewName.rst
@@ -0,0 +1,124 @@
+Setup::
+
+    >>> import re
+    >>> from plone.app.portlets.browser.editmanager import DashboardEditPortletManagerRenderer
+    >>> from plone.portlets.interfaces import IPortletType
+    >>> from plone.portlets.interfaces import IPortletManager
+    >>> from zope.component import getUtility
+
+
+bug: 11409 test bits
+----------------------
+check the names for customized views are in place::
+
+    >>> portal.manage_permission('Portlets: Manage own portlets', roles=['Manager'], acquire=0)
+    >>> portlet = getUtility(IPortletType, name='portlets.News')
+    >>> col = getUtility(IPortletManager, name='plone.dashboard1')
+    >>> view = portal.unrestrictedTraverse('@@manage-dashboard')
+    >>> renderer = DashboardEditPortletManagerRenderer(self.portal, self.portal.REQUEST, view, col)
+    >>> renderer.view_name == u'manage-dashboard'
+    True
+
+Now customize the manage dashboard view and check the name is in place too::
+
+    >>> browser = self.site_administrator_browser
+    >>> browser.open(portal.absolute_url()+'/portal_view_customizations/registrations.html')
+    >>> browser.getLink(url='manage-dashboard').click()
+    >>> managedashboard_template = """
+    ... <html xmlns="http://www.w3.org/1999/xhtml"
+    ...       xmlns:tal="http://xml.zope.org/namespaces/tal"
+    ...       xmlns:metal="http://xml.zope.org/namespaces/metal"
+    ...       xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+    ...       xml:lang="en" lang="en"
+    ...       metal:use-macro="context/main_template/macros/master"
+    ...       i18n:domain="plone">
+    ...
+    ... <head>
+    ...     <metal:block fill-slot="top_slot"
+    ...                  tal:define="dummy python:request.set('disable_border',1);
+    ...                              disable_column_one python:request.set('disable_plone.leftcolumn',1);
+    ...                              disable_column_two python:request.set('disable_plone.rightcolumn',1);" />
+    ...     <div metal:fill-slot="javascript_head_slot" tal:omit-tag="">
+    ...         <script type="text/javascript"
+    ...             tal:attributes="src string:${context/absolute_url}/++resource++manage-portlets.js">
+    ...         </script>
+    ...     </div>
+    ... </head>
+    ... <body>
+    ... <tal:comment replace="nothing">
+    ...     Please note that this template fills the "content" slot instead of the
+    ...     "main" slot, this is done so we can provide stuff like the content
+    ...     tabs. This also means that we have to supply things that are normally
+    ...     present from main_template.
+    ... </tal:comment>
+    ... <metal:main fill-slot="content"
+    ...     tal:define="errors options/state/getErrors | nothing">
+    ...     <tal:main-macro metal:define-macro="main">
+    ...             <div id="edit-bar">
+    ...                 <h5 class="hiddenStructure"
+    ...                      i18n:translate="heading_content_views">Content views</h5>
+    ...                 <ul id="content-views"
+    ...                     class="contentViews">
+    ...                   <li>
+    ...                     <a href=""
+    ...                        tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/dashboard"
+    ...                        i18n:translate="label_dashboard">Dashboard</a>
+    ...                   </li>
+    ...                   <li class="selected">
+    ...                     <a href=""
+    ...                        tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/@@manage-dashboard"
+    ...                        i18n:translate="label_edit">Edit</a>
+    ...                   </li>
+    ...                 </ul>
+    ...
+    ...                 <div class="contentActions">
+    ...                    
+    ...                 </div>
+    ...             </div>
+    ...             <div metal:use-macro="context/global_statusmessage/macros/portal_message">
+    ...                 Portal status message
+    ...             </div>
+    ...             <div id="content">
+    ...                 <h1 class="documentFirstHeading" i18n:translate="title_edit_dashboard">
+    ...                     Edit your dashboard
+    ...                 </h1>
+    ...                 <div id="content-core">
+    ...                     <div id="dashboard">
+    ...                         <div id="dashboard-portlets1"
+    ...                           tal:content="structure provider:plone.dashboard1" />
+    ...                         <div id="dashboard-portlets2"
+    ...                           tal:content="structure provider:plone.dashboard2" />
+    ...                         <div id="dashboard-portlets3"
+    ...                           tal:content="structure provider:plone.dashboard3" />
+    ...                         <div id="dashboard-portlets4"
+    ...                           tal:content="structure provider:plone.dashboard4" />
+    ...                     </div>
+    ...                     <div class="visualClear"><!-- --></div>
+    ...                 </div>
+    ...
+    ...             </div>
+    ...     </tal:main-macro>
+    ... </metal:main>
+    ... </body>
+    ... </html>"""
+    >>> browser.handleErrors = True
+    >>> browser.getControl('Customize').click()
+    >>> browser.handleErrors = False
+    >>> browser.getControl(name='text:text').value = managedashboard_template
+    >>> browser.getControl('Save Changes').click()
+
+Add a portlet in the dashboard and try to delete it::
+
+    >>> browser.open(portal.absolute_url()+'/dashboard')
+    >>> browser.getLink('Edit').click()
+    >>> browser.getControl(name=':action',index=0).value = ['/++dashboard++plone.dashboard1+app/+/portlets.Search']
+    >>> browser.getForm(index=1).submit()
+    >>> browser.getControl('Save').click()  # This submits the now shown add form.
+    >>> browser.open(portal.absolute_url()+'/@@manage-dashboard')
+    >>> '/search/edit' in browser.contents
+    True
+    >>> browser.getControl(name="search-remove").click()
+    >>> '/search/edit' in browser.contents
+    False
+
+
diff --git a/plone/app/portlets/tests/testViewName.txt b/plone/app/portlets/tests/testViewName.txt
deleted file mode 100644
index efd5fc6..0000000
--- a/plone/app/portlets/tests/testViewName.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-Setup::
-
-    >>> import re
-    >>> from plone.app.portlets.browser.editmanager import DashboardEditPortletManagerRenderer
-    >>> from plone.portlets.interfaces import IPortletType
-    >>> from plone.portlets.interfaces import IPortletManager
-    >>> from zope.component import getUtility
-
-
-bug: 11409 test bits
-----------------------
-check the names for customized views are in place::
-
-    >>> portal.manage_permission('Portlets: Manage own portlets', roles=['Manager'], acquire=0)
-    >>> portlet = getUtility(IPortletType, name='portlets.News')
-    >>> col = getUtility(IPortletManager, name='plone.dashboard1')
-    >>> view = portal.unrestrictedTraverse('@@manage-dashboard')
-    >>> renderer = DashboardEditPortletManagerRenderer(self.portal, self.portal.REQUEST, view, col)
-    >>> renderer.view_name == u'manage-dashboard'
-    True
-
-Now customize the manage dashboard view and check the name is in place too::
-
-    >>> browser = self.site_administrator_browser
-    >>> browser.open(portal.absolute_url()+'/portal_view_customizations/registrations.html')
-    >>> browser.getLink(url='manage-dashboard').click()
-    >>> managedashboard_template = """
-    ... <html xmlns="http://www.w3.org/1999/xhtml"
-    ...       xmlns:tal="http://xml.zope.org/namespaces/tal"
-    ...       xmlns:metal="http://xml.zope.org/namespaces/metal"
-    ...       xmlns:i18n="http://xml.zope.org/namespaces/i18n"
-    ...       xml:lang="en" lang="en"
-    ...       metal:use-macro="context/main_template/macros/master"
-    ...       i18n:domain="plone">
-    ...
-    ... <head>
-    ...     <metal:block fill-slot="top_slot"
-    ...                  tal:define="dummy python:request.set('disable_border',1);
-    ...                              disable_column_one python:request.set('disable_plone.leftcolumn',1);
-    ...                              disable_column_two python:request.set('disable_plone.rightcolumn',1);" />
-    ...     <div metal:fill-slot="javascript_head_slot" tal:omit-tag="">
-    ...         <script type="text/javascript"
-    ...             tal:attributes="src string:${context/absolute_url}/++resource++manage-portlets.js">
-    ...         </script>
-    ...     </div>
-    ... </head>
-    ... <body>
-    ... <tal:comment replace="nothing">
-    ...     Please note that this template fills the "content" slot instead of the
-    ...     "main" slot, this is done so we can provide stuff like the content
-    ...     tabs. This also means that we have to supply things that are normally
-    ...     present from main_template.
-    ... </tal:comment>
-    ... <metal:main fill-slot="content"
-    ...     tal:define="errors options/state/getErrors | nothing">
-    ...     <tal:main-macro metal:define-macro="main">
-    ...             <div id="edit-bar">
-    ...                 <h5 class="hiddenStructure"
-    ...                      i18n:translate="heading_content_views">Content views</h5>
-    ...                 <ul id="content-views"
-    ...                     class="contentViews">
-    ...                   <li>
-    ...                     <a href=""
-    ...                        tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/dashboard"
-    ...                        i18n:translate="label_dashboard">Dashboard</a>
-    ...                   </li>
-    ...                   <li class="selected">
-    ...                     <a href=""
-    ...                        tal:attributes="href string:${context/@@plone_portal_state/navigation_root_url}/@@manage-dashboard"
-    ...                        i18n:translate="label_edit">Edit</a>
-    ...                   </li>
-    ...                 </ul>
-    ...
-    ...                 <div class="contentActions">
-    ...                    
-    ...                 </div>
-    ...             </div>
-    ...             <div metal:use-macro="context/global_statusmessage/macros/portal_message">
-    ...                 Portal status message
-    ...             </div>
-    ...             <div id="content">
-    ...                 <h1 class="documentFirstHeading" i18n:translate="title_edit_dashboard">
-    ...                     Edit your dashboard
-    ...                 </h1>
-    ...                 <div id="content-core">
-    ...                     <div id="dashboard">
-    ...                         <div id="dashboard-portlets1"
-    ...                           tal:content="structure provider:plone.dashboard1" />
-    ...                         <div id="dashboard-portlets2"
-    ...                           tal:content="structure provider:plone.dashboard2" />
-    ...                         <div id="dashboard-portlets3"
-    ...                           tal:content="structure provider:plone.dashboard3" />
-    ...                         <div id="dashboard-portlets4"
-    ...                           tal:content="structure provider:plone.dashboard4" />
-    ...                     </div>
-    ...                     <div class="visualClear"><!-- --></div>
-    ...                 </div>
-    ...
-    ...             </div>
-    ...     </tal:main-macro>
-    ... </metal:main>
-    ... </body>
-    ... </html>"""
-    >>> browser.handleErrors = True
-    >>> browser.getControl('Customize').click()
-    >>> browser.handleErrors = False
-    >>> browser.getControl(name='text:text').value = managedashboard_template
-    >>> browser.getControl('Save Changes').click()
-
-Add a portlet in the dashboard and try to delete it::
-
-    >>> browser.open(portal.absolute_url()+'/dashboard')
-    >>> browser.getLink('Edit').click()
-    >>> browser.getControl(name=':action',index=0).value = ['/++dashboard++plone.dashboard1+app/+/portlets.Search']
-    >>> browser.getForm(index=1).submit()
-    >>> browser.getControl('Save').click()  # This submits the now shown add form.
-    >>> browser.open(portal.absolute_url()+'/@@manage-dashboard')
-    >>> '/search/edit' in browser.contents
-    True
-    >>> browser.getControl(name="search-remove").click()
-    >>> '/search/edit' in browser.contents
-    False
-
-




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


More information about the Testbot mailing list