示例#1
0
    def testTracebackPreservedAcrossSuspend(self):
        backofficeport = self.port + 1
        expectedrequest = ''
        testserver(backofficeport, [], expectedrequest)
        target = ('localhost', backofficeport, '/')

        exceptions = []
        def failingserver(*args, **kwarg):
            try:
                response = yield httpget(*target)
            except Exception, e:
                exceptions.append(exc_info())
示例#2
0
    def testTracebackPreservedAcrossSuspend(self):
        backofficeport = PortNumberGenerator.next()
        expectedrequest = ''
        testserver(backofficeport, [], expectedrequest)
        target = ('localhost', backofficeport, '/')

        exceptions = []

        def failingserver(*args, **kwarg):
            response = yield httpget(*target)

        self.handler = failingserver

        def requestLine(self, *args, **kwargs):
            raise RuntimeError("Boom!")

        try:
            originalRequestLine = httpRequestModule._requestLine
            httpRequestModule._requestLine = requestLine

            clientget('localhost', self.port, '/')
            with stderr_replaced():
                self._loopReactorUntilDone()

            expectedTraceback = ignoreLineNumbers(
                """Traceback (most recent call last):
  File "%(__file__)s", line 0, in handle
      yield self.handler(*args, **kwargs)
  File "%(__file__)s", line 192, in failingserver
    response = yield httpget(*target)
  File "%(httprequest.py)s", line 129, in httprequest
    result = s.getResult()
  File "%(httprequest.py)s", line 83, in _do
    yield _sendHttpHeaders(sok, method, request, headers)
  File "%(httprequest.py)s", line 121, in _sendHttpHeaders
    data = _requestLine(method, request)
  File "%(__file__)s", line 198, in requestLine
    raise RuntimeError("Boom!")
RuntimeError: Boom!""" % fileDict)
            resultingTraceback = ''.join(format_exception(*self.error))
            self.assertEqualsWS(expectedTraceback,
                                ignoreLineNumbers(resultingTraceback))

        finally:
            httpRequestModule._requestLine = originalRequestLine
示例#3
0
    def testTracebackPreservedAcrossSuspend(self):
        backofficeport = PortNumberGenerator.next()
        expectedrequest = ''
        testserver(backofficeport, [], expectedrequest)
        target = ('localhost', backofficeport, '/')

        exceptions = []
        def failingserver(*args, **kwarg):
            response = yield httpget(*target)
        self.handler = failingserver

        def requestLine(self, *args, **kwargs):
            raise RuntimeError("Boom!")

        try:
            originalRequestLine = httpRequestModule._requestLine
            httpRequestModule._requestLine = requestLine

            clientget('localhost', self.port, '/')
            with stderr_replaced():
                self._loopReactorUntilDone()

            expectedTraceback = ignoreLineNumbers("""Traceback (most recent call last):
  File "%(__file__)s", line 0, in handle
      yield self.handler(*args, **kwargs)
  File "%(__file__)s", line 192, in failingserver
    response = yield httpget(*target)
  File "%(httprequest.py)s", line 129, in httprequest
    result = s.getResult()
  File "%(httprequest.py)s", line 83, in _do
    yield _sendHttpHeaders(sok, method, request, headers)
  File "%(httprequest.py)s", line 121, in _sendHttpHeaders
    data = _requestLine(method, request)
  File "%(__file__)s", line 198, in requestLine
    raise RuntimeError("Boom!")
RuntimeError: Boom!""" % fileDict)
            resultingTraceback = ''.join(format_exception(*self.error))
            self.assertEqualsWS(expectedTraceback, ignoreLineNumbers(resultingTraceback))

        finally:
            httpRequestModule._requestLine = originalRequestLine
示例#4
0
 def testPassRequestThruToBackOfficeServerWithHttpRequest(self):
     backofficeport = PortNumberGenerator.next()
     def passthruhandler(*args, **kwargs):
         request = kwargs['RequestURI']
         response = yield HttpRequest().httprequest(host='localhost', port=backofficeport, request=request)
         yield response
     self.handler = passthruhandler
     expectedrequest = "GET /depot?arg=1&arg=2 HTTP/1.0\r\n\r\n"
     responses = (i for i in ['hel', 'lo!'])
     backofficeserver = testserver(backofficeport, responses, expectedrequest)
     client = clientget('localhost', self.port, '/depot?arg=1&arg=2')
     self._loopReactorUntilDone()
     response = client.recv(99)
     self.assertEquals('hello!', response)
示例#5
0
    def testPassRequestThruToBackOfficeServer(self):
        backofficeport = PortNumberGenerator.next()

        def passthruhandler(*args, **kwargs):
            request = kwargs['RequestURI']
            response = yield httpget('localhost', backofficeport, request)
            yield response

        self.handler = passthruhandler
        expectedrequest = "GET /depot?arg=1&arg=2 HTTP/1.0\r\n\r\n"
        responses = (i for i in ['hel', 'lo!'])
        backofficeserver = testserver(backofficeport, responses,
                                      expectedrequest)
        client = clientget('localhost', self.port, '/depot?arg=1&arg=2')
        self._loopReactorUntilDone()
        response = client.recv(99)
        self.assertEquals('hello!', response)
示例#6
0
 def testPassRequestThruToBackOfficeServer(self):
     done = [False]
     backofficeport = self.port + 1
     def passthruhandler(*args, **kwargs):
         request = kwargs['RequestURI']
         response = yield httpget('localhost', backofficeport, request)
         yield response
         done[0] = True
     self.handler = passthruhandler
     expectedrequest = "GET /depot?arg=1&arg=2 HTTP/1.0\r\n\r\n"
     responses = (i for i in ['hel', 'lo!'])
     backofficeserver = testserver(backofficeport, responses, expectedrequest)
     client = clientget('localhost', self.port, '/depot?arg=1&arg=2')
     while not done[0]:
         self.reactor.step()
     response = client.recv(99)
     self.assertEquals('hello!', response)