def testCatch_ConflictErrorRaisedByPythonModule(self):
        self.app._setObject('raiseConflictError', dummy.Raiser(ConflictError))
        try:
            self.check('''
from ZODB.POSException import ConflictError
try: context.raiseConflictError()
except ConflictError: pass
''')
        except Exception as e:
            self.fail('Failed to catch: %s %s (module %s)' %
                      (e.__class__.__name__, e, e.__module__))
Example #2
0
    def testCatch_CopyErrorRaisedByPythonModule(self):
        self.folder._setObject('raiseCopyError', dummy.Raiser(CopyError))
        try:
            self.check('''
from OFS.CopySupport import CopyError
try: context.raiseCopyError()
except CopyError: pass
''')
        except Exception, e:
            self.fail('Failed to catch: %s %s (module %s)' %
                      (e.__class__.__name__, e, e.__module__))
Example #3
0
    def testCatch_ParseErrorRaisedByPythonModule(self):
        self.folder._setObject('raiseParseError', dummy.Raiser(ParseError))
        try:
            self.check('''
from Products.ZCTextIndex.ParseTree import ParseError
try: context.raiseParseError()
except ParseError: pass
''')
        except Exception, e:
            self.fail('Failed to catch: %s %s (module %s)' %
                      (e.__class__.__name__, e, e.__module__))
Example #4
0
    def testCatch_SyntaxErrorRaisedByPythonModule(self):
        self.folder._setObject('raiseSyntaxError',
                               dummy.Raiser(self.SyntaxError))
        try:
            self.check('''
from DateTime.interfaces import SyntaxError
try: context.raiseSyntaxError()
except SyntaxError: pass
''')
        except Exception, e:
            self.fail('Failed to catch: %s %s (module %s)' %
                      (e.__class__.__name__, e, e.__module__))
    def testCatch_DiscussionNotAllowedRaisedByPythonModule(self):
        self.folder._setObject('raiseDiscussionNotAllowed',
                               dummy.Raiser(DiscussionNotAllowed))
        try:
            self.check('''
from Products.CMFDefault.DiscussionTool import DiscussionNotAllowed
try: context.raiseDiscussionNotAllowed()
except DiscussionNotAllowed: pass
''')
        except Exception, e:
            self.fail('Failed to catch: %s %s (module %s)' %
                      (e.__class__.__name__, e, e.__module__))
Example #6
0
 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')
Example #7
0
 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')
Example #8
0
 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.')
Example #9
0
 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.')