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)
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)
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())
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
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
def responseStream(self): return stream.MemoryStream(self.responseText)
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)
def setUp(self): self.data = testdata.replace('\n', '\r\n') s = stream.MemoryStream(self.data) self.s = stream.BufferedStream(s)
def makeStream(self, *args, **kw): return stream.MemoryStream(self.text, *args, **kw)