def sendreq(site, bytes):
    result = []

    def actually_send():
        socket = FakeSocket(bytes)
        waiter = coro.coroutine_cond()
        server = FakeServer(waiter)
        log = coro.coroutine_logger('tests')
        output = cStringIO.StringIO()
        log.addHandler(logging.StreamHandler(output))
        http = corohttpd.HttpProtocol(args=(socket, ('<fake>', 0), server,
                                            [site]),
                                      log=log)
        http.start()
        waiter.wait(0.01)
        if socket.pushed.startswith('HTTP/1.1 500'):
            output.seek(0)
            print output.read()
        result.append(socket.pushed)

    coro.spawn(actually_send)
    coro.event_loop()
    rv = result[0].split('\r\n\r\n', 1)
    if len(rv) != 2:
        rv = ('', '')
    return rv
Exemple #2
0
def sendreq(site, bytes):
    result = []

    def actually_send():
        socket = FakeSocket(bytes)
        waiter = coro.coroutine_cond()
        server = FakeServer(waiter)
        log = coro.coroutine_logger("tests")
        output = cStringIO.StringIO()
        log.addHandler(logging.StreamHandler(output))
        http = corohttpd.HttpProtocol(args=(socket, ("<fake>", 0), server, [site]), log=log)
        http.start()
        waiter.wait(0.01)
        if socket.pushed.startswith("HTTP/1.1 500"):
            output.seek(0)
            print output.read()
        result.append(socket.pushed)

    coro.spawn(actually_send)
    coro.event_loop()
    rv = result[0].split("\r\n\r\n", 1)
    if len(rv) != 2:
        rv = ("", "")
    return rv
Exemple #3
0
 def shutdown(signum, frame):
     coro.spawn(lambda: server.drain() and notif.shutdown())