Exemplo n.º 1
0
    def test_chunkedUpload(self):
        """
        Ensure chunked data is correctly decoded on upload.
        """

        cxn = self.connect(inputTimeOut=None)

        data = 'Foo bar baz bax'
        s = stream.ProducerStream(length=None)
        s.write(data)

        req = http.ClientRequest('PUT', '/', None, s)

        d = cxn.client.submitRequest(req)

        s.finish()

        self.assertReceived(
            cxn, 'PUT / HTTP/1.1',
            ['Connection: close', 'Transfer-Encoding: chunked'],
            '%X\r\n%s\r\n0\r\n\r\n' % (len(data), data))

        self.writeLines(cxn, ('HTTP/1.1 200 OK', 'Connection: close',
                              'Content-Length: 0', '\r\n'))

        return d.addCallback(lambda _: self.assertDone(cxn))
Exemplo n.º 2
0
 def test_failfinish(self):
     p = stream.ProducerStream()
     p.write("hello")
     p.finish(RuntimeError())
     self.assertEquals(p.read(), "hello")
     d = p.read()
     l = []
     d.addErrback(lambda _: (l.append(1), _.trap(RuntimeError))
                  ).addCallback(lambda _: self.assertEquals(l, [1]))
     return d
Exemplo n.º 3
0
    def test_errorReadingRequestStream(self):
        """
        Ensure that stream errors are propagated to the response.
        """

        cxn = self.connect(inputTimeOut=None)

        s = stream.ProducerStream()
        s.write('Foo')

        req = http.ClientRequest('GET', '/', None, s)

        d = cxn.client.submitRequest(req)

        s.finish(IOError('Test Error'))

        return self.assertFailure(d, IOError)
Exemplo n.º 4
0
 def __init__(self):
     self.headers = http_headers.Headers()
     self.stream = stream.ProducerStream()