def test_timed_request_timeout(self): class Parser(): def __init__(self, nc, t): self.nc = nc self.t = t def parse(self, data=''): self.nc._process_pong() nc = Client() nc._ps = Parser(nc, self) yield nc.connect(io_loop=self.io_loop) with self.assertRaises(tornado.gen.TimeoutError): yield nc.timed_request("hello", "world", timeout=0.5)
def test_flush_timeout(self): class Parser(): def __init__(self, nc, t): self.nc = nc self.t = t @tornado.gen.coroutine def parse(self, data=''): self.t.assertEqual(1, self.nc._pings_outstanding) yield tornado.gen.sleep(2.0) yield self.nc._process_pong() nc = Client() nc._ps = Parser(nc, self) yield nc.connect(io_loop=self.io_loop) with self.assertRaises(tornado.gen.TimeoutError): yield nc.flush(timeout=1) self.assertEqual(1, len(nc._pongs)) self.assertEqual(1, nc._pings_outstanding)
def test_default_ping_interval(self): class Parser(): def __init__(self, nc, t): self.nc = nc self.t = t @tornado.gen.coroutine def parse(self, data=''): self.t.assertEqual(1, len(self.nc._pongs)) yield self.nc._process_pong() self.t.assertEqual(0, len(self.nc._pongs)) nc = Client() nc._ps = Parser(nc, self) yield nc.connect(io_loop=self.io_loop) yield tornado.gen.sleep(1) self.assertEqual(0, nc._pings_outstanding) self.assertTrue(nc.is_connected)
def test_custom_ping_interval(self): pongs = [] class Parser(): def __init__(self, nc): self.nc = nc @tornado.gen.coroutine def parse(self, data=''): if b'PONG' in data: pongs.append(data) yield self.nc._process_pong() nc = Client() nc._ps = Parser(nc) yield nc.connect(io_loop=self.io_loop, ping_interval=0.1) yield tornado.gen.sleep(1) # Should have processed at least more than 5 pongs already self.assertTrue(len(pongs) > 5) self.assertTrue(nc.is_connected) self.assertFalse(nc.is_reconnecting)