Exemple #1
0
    def test_callObject(self):
        pub = zope.app.publication.http.HTTPPublication(None)
        request = HTTPRequest(StringIO(''), {})
        request.method = 'SPAM'

        ztapi.provideView(I, IHTTPRequest, Interface, 'SPAM', V)

        ob = C()
        pub.callObject(request, ob)
        self.assertEqual(ob.spammed, 1)
    def test_callObject(self):
        pub = zope.app.publication.http.HTTPPublication(None)
        request = HTTPRequest(StringIO(''), {})
        request.method = 'SPAM'

        component.provideAdapter(V, (I, IHTTPRequest), Interface, name='SPAM')

        ob = C()
        pub.callObject(request, ob)
        self.assertEqual(ob.spammed, 1)
Exemple #3
0
    def test_callObject(self):
        pub = zope.app.publication.http.HTTPPublication(None)
        request = HTTPRequest(StringIO(''), {})
        request.method = 'SPAM'

        component.provideAdapter(V, (I, IHTTPRequest), Interface, name='SPAM')

        ob = C()
        pub.callObject(request, ob)
        self.assertEqual(ob.spammed, 1)
Exemple #4
0
    def test_callObject(self):
        pub = zope.app.publication.http.HTTPPublication(None)
        request = HTTPRequest(StringIO(''), {})
        request.method = 'SPAM'

        ztapi.provideView(I, IHTTPRequest, Interface, 'SPAM', V)

        ob = C()
        pub.callObject(request, ob)
        self.assertEqual(ob.spammed, 1)
Exemple #5
0
    def _createRequest(self, extra_env={}, body=b""):
        env = self._testEnv.copy()
        env.update(extra_env)
        if len(body):
            env['CONTENT_LENGTH'] = str(len(body))

        publication = DefaultPublication(self.app)
        instream = BytesIO(body)
        request = HTTPRequest(instream, env)
        request.setPublication(publication)
        return request
Exemple #6
0
    def _createRequest(self, extra_env={}, body=b""):
        env = self._testEnv.copy()
        env.update(extra_env)
        if len(body):
            env['CONTENT_LENGTH'] = str(len(body))

        publication = DefaultPublication(self.app)
        instream = BytesIO(body)
        request = HTTPRequest(instream, env)
        request.setPublication(publication)
        return request
Exemple #7
0
    def test(self):
        from zope.app.publication.http import MethodNotAllowed
        from zope.app.http.exception.methodnotallowed \
             import MethodNotAllowedView
        from zope.publisher.http import HTTPRequest

        context = C()
        request = HTTPRequest(StringIO('PUT /bla/bla HTTP/1.1\n\n'), {})
        error = MethodNotAllowed(context, request)
        view = MethodNotAllowedView(error, request)

        result = view()

        self.assertEqual(request.response.getStatus(), 405)
        self.assertEqual(request.response.getHeader('Allow'), 'DELETE, GET')
        self.assertEqual(result, 'Method Not Allowed')
    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)
Exemple #9
0
 def test_IApplicationRequest_bodyStream(self):
     request = HTTPRequest(BytesIO(b'spam'), {})
     self.assertEqual(request.bodyStream.read(), b'spam')
Exemple #10
0
 def _Test__new(self, environ=None, **kw):
     if environ is None:
         environ = kw
     return HTTPRequest(BytesIO(b''), environ)
Exemple #11
0
 def _Test__new(self, environ=None, **kw):
     if environ is None:
         environ = kw
     return HTTPRequest(StringIO(''), environ)
 def setUp(self):
     self.request = HTTPRequest('', {})
class TestErrorViews(TestCase):

    def setUp(self):
        self.request = HTTPRequest('', {})

    def test_exceptionviewbase(self):
        view = http.ExceptionViewBase(Exception(), self.request)
        self.assertTrue(IHTTPException.providedBy(view))
        self.assertEqual(str(view), '')
        self.assertEqual(view(), '')
        self.assertEqual(self.request.response.getStatus(), 500)

    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_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)

    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 = 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_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')
Exemple #14
0
def create_request(charset_header=None):
    environ = {}
    if charset_header is not None:
        environ['HTTP_ACCEPT_CHARSET'] = charset_header
    return HTTPRequest('', environ)