[Testbot] Plone 4.3 - Python 2.7 - Build # 2941 - Fixed! - 0 failure(s)
jenkins at plone.org
jenkins at plone.org
Tue Feb 24 10:21:33 UTC 2015
-------------------------------------------------------------------------------
Plone 4.3 - Python 2.7 - Build # 2941 - Fixed!
-------------------------------------------------------------------------------
http://jenkins.plone.org/job/plone-4.3-python-2.7/2941/
-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------
Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2015-02-24T10:51:59+01:00
Author: Timo Stollenwerk () <contact at timostollenwerk.net>
Commit: https://github.com/plone/Products.CMFPlone/commit/38b8474d6c3b51e390aa6b3e20663a8eafe9d6e9
Revert "add tests for https://dev.plone.org/ticket/13603"
This reverts commit 80b687fa2b99da528f77688c0e7fb45a88f3701c.
Files changed:
M Products/CMFPlone/tests/test_ploneutils.py
M docs/CHANGES.rst
diff --git a/Products/CMFPlone/tests/test_ploneutils.py b/Products/CMFPlone/tests/test_ploneutils.py
index a4cb95f..461c71b 100644
--- a/Products/CMFPlone/tests/test_ploneutils.py
+++ b/Products/CMFPlone/tests/test_ploneutils.py
@@ -1,9 +1,6 @@
import unittest
-import re
from Products.CMFPlone.testing import PRODUCTS_CMFPLONE_INTEGRATION_TESTING
-from plone.app.testing import setRoles
-from plone.app.testing import TEST_USER_ID
class TestPloneTool(unittest.TestCase):
@@ -29,83 +26,19 @@ def test_deleteObjectsByPaths_relative_path_raises(self):
handle_errors=False
)
- def test_delete_wrongly_acquired_object_through_deleteObjectsByPaths(self):
+ def test_deleteObjectsByPaths_wrongly_acquired_object(self):
'''
- Do not delete wrongly acquired object through folder_contents
+ Do not delete wrongly acquired object.
See https://dev.plone.org/ticket/13603
-
'''
- # prepare content
- self.portal.invokeFactory('Document', 'a_page')
+ self.portal.invokeFactory('Folder', 'a_page')
self.assertTrue('a_page' in self.portal.objectIds())
- self.portal.invokeFactory('Folder', 'a_folder')
- a_folder = self.portal['a_folder']
- a_folder.invokeFactory('Document', 'a_page')
- self.assertTrue('a_page' in a_folder.objectIds())
- a_page_in_folder = a_folder['a_page']
- path = a_page_in_folder.absolute_url_path()
-
- # first request to delete
+ a_page_folder = self.portal['a_page']
+ a_page_folder.invokeFactory('Document', 'a_page')
+ self.assertTrue('a_page' in a_page_folder.objectIds())
+ a_page = a_page_folder['a_page']
+ path = a_page.absolute_url_path()
self.plone_utils.deleteObjectsByPaths([path])
- self.assertFalse('a_page' in a_folder.objectIds())
- self.assertTrue('a_page' in self.portal.objectIds())
-
- # second request to delete
+ self.assertFalse('a_page' in a_page_folder.objectIds())
self.plone_utils.deleteObjectsByPaths([path])
- self.assertTrue(
- 'a_page' in self.portal.objectIds(),
- 'acquired content should not be deleted.'
- )
-
- def _get_authenticator(self):
- url = '/plone/login_password'
- login = self.portal.restrictedTraverse(url)
- res = login()
- m = re.search('name="_authenticator" value="([^"]*)"', res)
- if m:
- return m.group(1)
- return ''
-
- def test_delete_wrongly_acquired_object_through_object_delete(self):
- '''
- Do not delete wrongly acquired object through Actions Delete.
- See https://dev.plone.org/ticket/13603
- '''
- setRoles(self.portal, TEST_USER_ID, ['Member', 'Manager'])
-
- # prepare content
- self.portal.invokeFactory('Document', 'a_page')
self.assertTrue('a_page' in self.portal.objectIds())
- self.portal.invokeFactory('Folder', 'a_folder')
- a_folder = self.portal['a_folder']
- a_folder.invokeFactory('Document', 'a_page')
- self.assertTrue('a_page' in a_folder.objectIds())
- a_page_in_folder = a_folder['a_page']
-
- # prepare fake request
- physical_path = list(a_page_in_folder.getPhysicalPath())
- physical_path.append('object_delete')
- url = '/'.join(physical_path)
- request = self.layer['request']
- request.set('URL', url)
- url2 = '/'.join(physical_path[:-2])
- request.set('URL2', url2)
- request.environ['REQUEST_METHOD'] = 'POST'
- csrf_token = self._get_authenticator()
- request.form.update({
- '_authenticator': csrf_token,
- })
-
- # simulate call to object_delete
- object_delete = self.portal.restrictedTraverse(url)
- object_delete()
- self.assertFalse('a_page' in a_folder.objectIds())
- self.assertTrue('a_page' in self.portal.objectIds())
-
- # simulate second call to object_delete
- object_delete = self.portal.restrictedTraverse(url)
- object_delete()
- self.assertTrue(
- 'a_page' in self.portal.objectIds(),
- 'acquired content should not be deleted.'
- )
diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
index 8ff990e..7cdc1fc 100644
--- a/docs/CHANGES.rst
+++ b/docs/CHANGES.rst
@@ -8,11 +8,6 @@ Changelog
4.3.5 (unreleased)
------------------
-- Fix: If a user "deletes" the same item twice (ex.: having two different tabs
- open and not realising it's already been deleted) any higher level item with
- the same short name will be deleted without trace.
- [gotcha]
-
- Extended ulocalized_time for target_language
[agitator]
Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2015-02-24T10:52:16+01:00
Author: Timo Stollenwerk () <contact at timostollenwerk.net>
Commit: https://github.com/plone/Products.CMFPlone/commit/d29f3f4808575620c5fe5216487a17616735f1d4
Revert "fix for https://dev.plone.org/ticket/13603"
This reverts commit 371cee9e15a996660924045fb061a185af837e42.
This commit broke the 4.3 build: http://jenkins.plone.org/job/plone-4.3-python-2.7/2940/
Files changed:
M Products/CMFPlone/skins/plone_scripts/object_delete.cpy
diff --git a/Products/CMFPlone/skins/plone_scripts/object_delete.cpy b/Products/CMFPlone/skins/plone_scripts/object_delete.cpy
index 0399472..b5e4673 100644
--- a/Products/CMFPlone/skins/plone_scripts/object_delete.cpy
+++ b/Products/CMFPlone/skins/plone_scripts/object_delete.cpy
@@ -18,9 +18,7 @@ REQUEST = context.REQUEST
if REQUEST.get('REQUEST_METHOD', 'GET').upper() == 'GET':
raise Unauthorized('This method can not be accessed using a GET request')
-parent_path = '/'.join(REQUEST.physicalPathFromURL(REQUEST.URL2))
-parent = context.restrictedTraverse(parent_path)
-
+parent = context.aq_inner.aq_parent
title = safe_unicode(context.title_or_id())
try:
@@ -37,15 +35,6 @@ else:
authenticator = context.restrictedTraverse('@@authenticator', None)
if not authenticator.verify():
raise Forbidden
-
- id = context.getId()
- item = parent.get(id, parent)
- if item == parent:
- message = _(u'${title} does not exist and cannot be deleted.',
- mapping={u'title': title})
- context.plone_utils.addPortalMessage(message, type='error')
- return state.set(status='failure')
-
parent.manage_delObjects(context.getId())
message = _(u'${title} has been deleted.',
mapping={u'title': title})
-------------------------------------------------------------------------------
More information about the Testbot
mailing list