def test_notfound(self):
     view = getMultiAdapter((NotFound(object(), self.request),
                            self.request),
                            name='index.html')
     self.assertTrue(IHTTPException.providedBy(view))
     self.assertEqual(view(), '')
     self.assertEqual(self.request.response.getStatus(), 404)
 def test_unauthorizedexceptionview(self):
     view = http.UnauthorizedView(Unauthorized(), self.request)
     self.assertTrue(IHTTPException.providedBy(view))
     self.assertEqual(view(), '')
     self.assertEqual(self.request.response.getStatus(), 401)
     self.assertTrue(
         self.request.response.getHeader(
             'WWW-Authenticate', '', True).startswith('basic'))
    def test_traversalexceptionview(self):
        view = http.TraversalExceptionView(TraversalException(), self.request)
        self.assertTrue(IHTTPException.providedBy(view))
        self.assertEqual(view(), '')
        self.assertEqual(self.request.response.getStatus(), 404)

        self.request = HTTPRequest('', {'REQUEST_METHOD': 'MKCOL'})
        view = http.TraversalExceptionView(TraversalException(), self.request)
        self.assertTrue(IHTTPException.providedBy(view))
        self.assertEqual(view(), '')
        self.assertEqual(self.request.response.getStatus(), 404)

        self.request.setTraversalStack(['foo', 'bar'])
        view = http.TraversalExceptionView(TraversalException(), self.request)
        self.assertTrue(IHTTPException.providedBy(view))
        self.assertEqual(view(), '')
        self.assertEqual(self.request.response.getStatus(), 409)
 def test_unauthorizedexceptionview(self):
     view = getMultiAdapter(
         (Unauthorized(), self.request), name='index.html')
     self.assertTrue(IHTTPException.providedBy(view))
     self.assertEqual(view(), '')
     self.assertEqual(self.request.response.getStatus(), 401)
     self.assertTrue(
         self.request.response.getHeader(
             'WWW-Authenticate', '', True).startswith('basic'))
Exemple #5
0
 def callObject(self, request, ob):
     # Exception handling, dont try to call request.method
     orig = ob
     if not IHTTPException.providedBy(ob):
         ob = zope.component.queryMultiAdapter((ob, request),
                                               name=request.method)
         ob = getattr(ob, request.method, None)
         if ob is None:
             raise MethodNotAllowed(orig, request)
     return mapply(ob, request.getPositionalArguments(), request)
Exemple #6
0
 def callObject(self, request, ob):
     # Exception handling, dont try to call request.method
     orig = ob
     if not IHTTPException.providedBy(ob):
         ob = zope.component.queryMultiAdapter((ob, request),
                                               name=request.method)
         ob = getattr(ob, request.method, None)
         if ob is None:
             raise MethodNotAllowed(orig, request)
     return mapply(ob, request.getPositionalArguments(), request)
 def test_systemerrormixin_view(self):
     class SystemErrorView(http.ExceptionViewBase,
                           http.SystemErrorViewMixin):
         pass
     view = SystemErrorView(Exception(), self.request)
     self.assertTrue(IHTTPException.providedBy(view))
     self.assertTrue(ISystemErrorView.providedBy(view))
     self.assertTrue(view.isSystemError())
     self.assertEqual(str(view), '')
     self.assertEqual(view(), '')
     self.assertEqual(self.request.response.getStatus(), 500)
Exemple #8
0
 def callObject(self, request, ob):
     orig = ob
     if not IHTTPException.providedBy(ob):
         ob = component.queryMultiAdapter((ob, request),
                                         name=request.method)
         checker = selectChecker(ob)
         if checker is not None:
             checker.check(ob, '__call__')
         ob = getattr(ob, request.method, None)
         if ob is None:
             raise GrokMethodNotAllowed(orig, request)
     return mapply(ob, request.getPositionalArguments(), request)
    def test_methodnotallowedview(self):
        error = MethodNotAllowed(object(), self.request)
        view = http.MethodNotAllowedView(error, self.request)
        self.assertTrue(IHTTPException.providedBy(view))
        self.assertEqual(view(), '')
        self.assertEqual(self.request.response.getStatus(), 405)
        self.assertEqual(self.request.response.getHeader('Allow'), '')

        class MyMethodNotAllowedView(http.MethodNotAllowedView):
            def allowed(self):
                return 'GET', 'POST', 'PUT', 'DELETE'

        MyMethodNotAllowedView(error, self.request)()
        self.assertEqual(self.request.response.getStatus(), 405)
        self.assertEqual(
            self.request.response.getHeader('Allow'), 'GET, POST, PUT, DELETE')
    def testbasicauth(self):
        from zope.app.http.exception.unauthorized import Unauthorized
        exception = Exception()
        try:
            raise exception
        except:
            pass
        request = TestRequest()
        u = Unauthorized(exception, request)

        # Chech that we implement the right interface
        self.failUnless(IHTTPException.providedBy(u))
        
        # Call the view
        u()
        
        # Make sure the response status was set
        self.assertEqual(request.response.getStatus(), 401)
        self.failUnless(request.response.getHeader('WWW-Authenticate', '', True).startswith('basic'))
    def test_methodnotallowedview(self):
        error = MethodNotAllowed(object(), self.request)
        view = getMultiAdapter((error, self.request), name='index.html')
        self.assertTrue(IHTTPException.providedBy(view))
        self.assertEqual(view(), '')
        self.assertEqual(self.request.response.getStatus(), 405)
        self.assertEqual(self.request.response.getHeader('Allow'), '')

        class MyMethodNotAllowedView(http.MethodNotAllowedView):
            def allowed(self):
                return 'GET', 'POST', 'PUT', 'DELETE'

        provideAdapter(
            MyMethodNotAllowedView,
            (IMethodNotAllowed, IHTTPRequest), Interface, 'index.html')

        view = getMultiAdapter((error, self.request), name='index.html')()
        self.assertEqual(self.request.response.getStatus(), 405)
        self.assertEqual(
            self.request.response.getHeader('Allow'), 'GET, POST, PUT, DELETE')
Exemple #12
0
    def test_unauthorizedview(self):
        self.request.setPrincipal(MockPrincipal())
        view = getMultiAdapter(
            (Unauthorized(), self.request), name='index.html')
        self.failUnless(IHTTPException.providedBy(view))
        self.assertEquals(
            view(), 'Access to the requested resource is forbidden.')
        self.assertEquals(self.request.response.getStatus(), 403)

        getUtility(IAuthentication).status = 401
        self.assertEquals(
            view(), 'Access to the requested resource is forbidden.')
        self.assertEquals(self.request.response.getStatus(), 401)

        getUtility(IAuthentication).status = 302
        self.assertEquals(view(), '')
        self.assertEquals(self.request.response.getStatus(), 302)

        getUtility(IAuthentication).status = 303
        self.assertEquals(view(), '')
        self.assertEquals(self.request.response.getStatus(), 303)
Exemple #13
0
 def test_notfoundview(self):
     error = NotFound(object(), self.request)
     view = getMultiAdapter((error, self.request), name='index.html')
     self.failUnless(IHTTPException.providedBy(view))
     self.assertEquals(view(), 'The requested resource can not be found.')
     self.assertEquals(self.request.response.getStatus(), 404)
 def test_exceptionview(self):
     view = http.ExceptionView(Exception(), self.request)
     self.assertTrue(IHTTPException.providedBy(view))
     self.assertEqual(str(view), '')
     self.assertEqual(view(), '')
     self.assertEqual(self.request.response.getStatus(), 500)
 def test_traversalexceptionview(self):
     view = getMultiAdapter(
         (TraversalException(), self.request), name='index.html')
     self.assertTrue(IHTTPException.providedBy(view))
     self.assertEqual(view(), '')
     self.assertEqual(self.request.response.getStatus(), 404)