def fake_nevow_request(method='GET', body=b'', is_secure=False, uri=b'http://example.com/one', request_headers=None, Request=NevowRequest): """ Create a fake `NevowRequest` instance for the purposes of testing. """ uri = URL.from_text(uri.decode('utf-8')).to_uri() channel = DummyChannel() if is_secure: channel.transport = DummyChannel.SSL() request = Request(channel=channel) request.method = method request.uri = url_path(uri) request.clientproto = b'HTTP/1.1' request.client = channel.transport.getPeer() content_length = len(body) request.requestHeaders.setRawHeaders('host', [uri.authority().encode('utf-8')]) request.requestHeaders.setRawHeaders('content-length', [content_length]) if request_headers: for k, v in request_headers.items(): request.requestHeaders.setRawHeaders(k, v) request.gotLength(content_length) request.content.write(body) request.content.seek(0) return request
def testPrePathURLSSLNonDefault(self): d = DummyChannel() d.transport = DummyChannel.SSL() d.transport.port = 81 request = server.Request(d, 1) request.setHost(b'example.com', 81) request.gotLength(0) request.requestReceived(b'GET', b'/foo/bar', b'HTTP/1.0') self.assertEqual(request.prePathURL(), b'https://example.com:81/foo/bar')