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)
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
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)
def test_IApplicationRequest_bodyStream(self): request = HTTPRequest(BytesIO(b'spam'), {}) self.assertEqual(request.bodyStream.read(), b'spam')
def _Test__new(self, environ=None, **kw): if environ is None: environ = kw return HTTPRequest(BytesIO(b''), environ)
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')
def create_request(charset_header=None): environ = {} if charset_header is not None: environ['HTTP_ACCEPT_CHARSET'] = charset_header return HTTPRequest('', environ)