Esempio n. 1
0
 def test_getMD5FailsBeforeClose(self):
     """
     L{stream.MD5Stream.getMD5} raises L{RuntimeError} if called before
     L{stream.MD5Stream.close}.
     """
     dataStream = stream.MemoryStream(self.data)
     md5Stream = stream.MD5Stream(dataStream)
     self.assertRaises(RuntimeError, md5Stream.getMD5)
Esempio n. 2
0
 def test_readAfterClose(self):
     """
     L{stream.MD5Stream.read} raises L{RuntimeError} if called after
     L{stream.MD5Stream.close}.
     """
     dataStream = stream.MemoryStream(self.data)
     md5Stream = stream.MD5Stream(dataStream)
     md5Stream.close()
     self.assertRaises(RuntimeError, md5Stream.read)
Esempio n. 3
0
    def test_synchronous(self):
        """
        L{stream.MD5Stream} computes the MD5 hash of the contents of the stream
        around which it is wrapped.  It supports L{IByteStream} providers which
        return C{str} from their C{read} method.
        """
        dataStream = stream.MemoryStream(self.data)
        md5Stream = stream.MD5Stream(dataStream)

        self.assertEquals(str(md5Stream.read()), self.data)
        self.assertIdentical(md5Stream.read(), None)
        md5Stream.close()

        self.assertEquals(self.digest, md5Stream.getMD5())
Esempio n. 4
0
def defaultErrorHandler(request, response):
    """
    Handle errors which do not have any stream (i.e. output) associated with
    them, so that users will see a nice message in their browser.

    This is used as a response filter in L{txweb2.server.Request}.
    """
    if response.stream is not None:
        # Already got an error message
        return response

    if response.code < 300:
        # We only do error messages
        return response

    message = ERROR_MESSAGES.get(response.code, None)
    if message is None:
        # No message specified for that code
        return response

    message = message % {
        'uri': request.uri,
        'location': response.headers.getHeader('location'),
        'method': request.method,
    }

    data = []
    error = []

    (flattenString(request, DefaultErrorElement(request,
                                                response)).addCallbacks(
                                                    data.append, error.append))

    # No deferreds from our renderers above, so this has always already fired.
    if data:
        subtype = 'html'
        body = data[0]
    else:
        subtype = 'error'
        body = 'Error in default error handler:\n' + error[0].getTraceback()

    ctype = http_headers.MimeType('text', subtype, {'charset': 'utf-8'})
    response.headers.setHeader("content-type", ctype)
    response.stream = stream.MemoryStream(body)
    return response
Esempio n. 5
0
    def __init__(self, site, method, uri, headers=None, content=None):
        if not headers:
            headers = http_headers.Headers(headers)

        super(SimpleRequest, self).__init__(site=site,
                                            chanRequest=None,
                                            command=method,
                                            path=uri,
                                            version=self.clientproto,
                                            contentLength=len(content or ''),
                                            headers=headers)

        self.stream = stream.MemoryStream(content or '')

        self.remoteAddr = address.IPv4Address('TCP', '127.0.0.1', 0)
        self._parseURL()
        self.host = 'localhost'
        self.port = 8080
Esempio n. 6
0
 def responseStream(self):
     return stream.MemoryStream(self.responseText)
Esempio n. 7
0
 def runCode(self, code, inputStream=None):
     if inputStream is None:
         inputStream = stream.MemoryStream("")
     return stream.ProcessStreamer(inputStream, sys.executable,
                                   [sys.executable, "-u", "-c", code],
                                   os.environ)
Esempio n. 8
0
 def setUp(self):
     self.data = testdata.replace('\n', '\r\n')
     s = stream.MemoryStream(self.data)
     self.s = stream.BufferedStream(s)
Esempio n. 9
0
 def makeStream(self, *args, **kw):
     return stream.MemoryStream(self.text, *args, **kw)