def testSetObjectRaisesBadRequest(self): # _setObject() should raise zExceptions.BadRequest # on duplicate id. self.folder._setObject('foo', dummy.Item()) try: self.folder._setObject('foo', dummy.Item()) except BadRequest: pass
def testCollisionSkipped(self): # Note that check is skipped when we don't have # the "Access contents information" permission. self.folder.manage_permission('Access contents information', [], acquire=0) self.folder._setObject('foo', dummy.Item('foo')) self.folder._setObject('bar', dummy.Item('bar')) r = self.folder.foo.check_id('bar') self.assertEqual(r, None) # success
def testCollisionNotSkipped(self): # Note that the existing object check is done, even when we don't have # the "Access contents information" permission. # This used to be the other way around. The reason got lost. # Probably this was because the permission was checked automatically # because check_id was a skin script. Since Plone 5.2 it is a # function which cannot be accessed from the web or templates, # so the permission test seems unneeded. self.folder.manage_permission('Access contents information', [], acquire=0) self.folder._setObject('foo', dummy.Item('foo')) self.folder._setObject('bar', dummy.Item('bar')) r = check_id(self.folder.foo, 'bar') self.assertEqual(r, u'bar is reserved.')
def testInvalidIdSkipped(self): # Note that the check is skipped when we don't have # the "Add portal content" permission. self.folder.manage_permission('Add portal content', [], acquire=0) self.folder._setObject('foo', dummy.Item('foo')) r = check_id(self.folder.foo, '_foo') self.assertEqual(r, None) # success
def testReservedIdSkipped(self): # This check is picked up by the checkIdAvailable, unless we don't have # the "Add portal content" permission, in which case it is picked up by # the final hasattr check. self.folder.manage_permission('Add portal content', [], acquire=0) self.folder._setObject('foo', dummy.Item('foo')) r = check_id(self.folder.foo, 'portal_catalog') self.assertEqual(r, u'portal_catalog is reserved.')
def testParentMethodAliasDisallowed(self): # Note that the check is skipped when we don't have # the "Add portal content" permission. self.folder.manage_permission('Add portal content', ['Manager'], acquire=0) self.folder._setObject('foo', dummy.Item('foo')) for alias in self.folder.getTypeInfo().getMethodAliases().keys(): r = check_id(self.folder.foo, alias) self.assertEqual(r, u'%s is reserved.' % alias)
def afterSetUp(self): self.items = [ dummy.Item('d', 'fred'), dummy.Item('c', 'wilma'), dummy.Item('b', 'barney'), dummy.Item('a', 'betty'), ] self.items2 = [ dummy.Item('D', 'Fred'), dummy.Item('c', 'Wilma'), dummy.Item('B', 'barney'), dummy.Item('a', 'betty'), ]
def testContainerHookRaisesConflictError(self): # check_id should not swallow ConflictErrors raised by hook self.folder._setObject('checkValidId', dummy.Raiser(ConflictError)) self.folder._setObject('foo', dummy.Item('foo')) self.assertRaises(ConflictError, check_id(self.folder.foo), 'whatever')
def testContainerHookRaisesUnauthorized(self): # check_id should not swallow Unauthorized errors raised by hook self.folder._setObject('checkValidId', dummy.Raiser(Unauthorized)) self.folder._setObject('foo', dummy.Item('foo')) self.assertRaises(Unauthorized, check_id(self.folder.foo), 'whatever')
def test_is_folderishWithNonFolder(self): i = dummy.Item() self.assertFalse(is_folderish(i)())
def testInvalidId(self): self.folder._setObject('foo', dummy.Item('foo')) r = check_id(self.folder.foo, '_foo') self.assertEqual(r, u'_foo is reserved.')
def testReservedId(self): self.folder._setObject('foo', dummy.Item('foo')) r = check_id(self.folder.foo, 'portal_catalog') self.assertEqual(r, u'portal_catalog is reserved.')
def testTempObjectCollision(self): foo = self.folder.restrictedTraverse('portal_factory/Document/foo') self.folder._setObject('bar', dummy.Item('bar')) r = foo.check_id('bar') self.assertEqual(r, u'bar is reserved.')
def testContainerHookRaisesUnauthorized(self): # check_id does not raise Unauthorized errors raised by hook self.folder._setObject('checkValidId', dummy.Raiser(Unauthorized)) self.folder._setObject('foo', dummy.Item('foo')) r = check_id(self.folder.foo, 'whatever') self.assertEqual(r, u'whatever is reserved.')
def testCheckIdAvailableCatchesBadRequest(self): # checkIdAvailable() should catch zExceptions.BadRequest self.folder._setObject('foo', dummy.Item()) self.assertFalse(self.folder.checkIdAvailable('foo'))
def testContainerHook(self): # Container may have a checkValidId method; make sure it is called self.folder._setObject('checkValidId', dummy.Raiser(dummy.Error)) self.folder._setObject('foo', dummy.Item('foo')) r = check_id(self.folder.foo, 'whatever') self.assertEqual(r, u'whatever is reserved.')
def testIsStructuralFolderWithNonFolder(self): i = dummy.Item() self.assertFalse(Plone(i, self.app.REQUEST).isStructuralFolder())
def test_is_folderishWithNonFolder(self): i = dummy.Item() self.failIf(is_folderish(i)())