Exemplo n.º 1
0
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
Exemplo n.º 2
0
 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')
Exemplo n.º 3
0
 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')
Exemplo n.º 4
0
 def testPrePathURLHTTPPortAndSSL(self):
     d = DummyChannel()
     d.transport = DummyChannel.SSL()
     d.transport.port = 80
     request = server.Request(d, 1)
     request.setHost('example.com', 80)
     request.gotLength(0)
     request.requestReceived('GET', '/foo/bar', 'HTTP/1.0')
     self.assertEqual(request.prePathURL(), 'https://example.com:80/foo/bar')