class CloseReasonHandler(TestWebSocketHandler):
def open(self):
+ self.on_close_called = False
self.close(1001, "goodbye")
self.assertIs(msg, None)
self.assertEqual(ws.close_code, 1001)
self.assertEqual(ws.close_reason, "goodbye")
+ # The on_close callback is called no matter which side closed.
+ yield self.close_future
@gen_test
def test_client_close_reason(self):
self.close_code = None
self.close_reason = None
self.stream = None
+ self._on_close_called = False
@tornado.web.asynchronous
def get(self, *args, **kwargs):
if self.ws_connection:
self.ws_connection.on_connection_close()
self.ws_connection = None
+ if not self._on_close_called:
+ self._on_close_called
self.on_close()
def send_error(self, *args, **kwargs):