mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-04 18:33:38 +00:00
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
|
import socket
|
||
|
|
||
|
from tornado import gen
|
||
|
from tornado.iostream import IOStream
|
||
|
from tornado.log import app_log
|
||
|
from tornado.stack_context import NullContext
|
||
|
from tornado.tcpserver import TCPServer
|
||
|
from tornado.testing import AsyncTestCase, ExpectLog, bind_unused_port, gen_test
|
||
|
|
||
|
|
||
|
class TCPServerTest(AsyncTestCase):
|
||
|
@gen_test
|
||
|
def test_handle_stream_coroutine_logging(self):
|
||
|
# handle_stream may be a coroutine and any exception in its
|
||
|
# Future will be logged.
|
||
|
class TestServer(TCPServer):
|
||
|
@gen.coroutine
|
||
|
def handle_stream(self, stream, address):
|
||
|
yield gen.moment
|
||
|
stream.close()
|
||
|
1/0
|
||
|
|
||
|
server = client = None
|
||
|
try:
|
||
|
sock, port = bind_unused_port()
|
||
|
with NullContext():
|
||
|
server = TestServer()
|
||
|
server.add_socket(sock)
|
||
|
client = IOStream(socket.socket())
|
||
|
with ExpectLog(app_log, "Exception in callback"):
|
||
|
yield client.connect(('localhost', port))
|
||
|
yield client.read_until_close()
|
||
|
yield gen.moment
|
||
|
finally:
|
||
|
if server is not None:
|
||
|
server.stop()
|
||
|
if client is not None:
|
||
|
client.close()
|