예제 #1
0
     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)
예제 #2
0
     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)
예제 #3
0
     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)
예제 #4
0
     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)