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
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
def shutdown(signum, frame): coro.spawn(lambda: server.drain() and notif.shutdown())