Example #1
0
 def test_already_connected(self):
     c = Connection(self._read_cb, self._close_cb, connect_timeout=2)
     res = yield c.connect()
     self.assertTrue(res)
     res = yield c.connect()
     self.assertTrue(res)
     c.disconnect()
Example #2
0
 def test_timeout_connect(self):
     orig_constructor = socket.socket
     socket.socket = functools.partial(fake_socket_constructor,
                                       FakeSocketObject1)
     c = Connection(self._read_cb, self._close_cb, connect_timeout=2)
     res = yield c.connect()
     self.assertFalse(res)
     socket.socket = orig_constructor
Example #3
0
 def _test_basic_write(self):
     c = Connection(self._read_cb, self._close_cb, connect_timeout=2)
     yield c.connect()
     data1 = format_args_in_redis_protocol("PING")
     data2 = b"*1\r\b$4\r\nQUIT\r\n"
     c.write(data1)
     c.write(data2)
     reply1 = yield self.reply_queue.get()
     self.assertEquals(reply1, b"PONG")
     reply2 = yield self.reply_queue.get()
     self.assertEquals(reply2, b"OK")
     c.disconnect()
Example #4
0
 def test_bigwrite(self):
     c = Connection(self._read_cb, self._close_cb)
     yield c.connect()
     data1 = format_args_in_redis_protocol("SET", "___foobar", BIG_VALUE)
     c.write(data1)
     data2 = format_args_in_redis_protocol("GET", "___foobar")
     c.write(data2)
     reply1 = yield self.reply_queue.get()
     reply2 = yield self.reply_queue.get()
     self.assertEquals(reply1, b"OK")
     self.assertEquals(reply2, BIG_VALUE)
     c.disconnect()
Example #5
0
    def connect(self):
        """Connects the client object to redis.

        It's safe to use this method even if you are already connected.

        Returns:
            a Future object with True as result if the connection was ok.
        """
        if self.is_connected():
            raise tornado.gen.Return(True)
        cb1 = self._read_callback
        cb2 = self._close_callback
        self.__callback_queue = collections.deque()
        self._reply_list = []
        self.__reader = hiredis.Reader(replyError=ClientError)
        kwargs = self.connection_kwargs
        self.__connection = Connection(cb1, cb2, **kwargs)
        return self.__connection.connect()
Example #6
0
 def test_write_on_closed_socket(self):
     c = Connection(self._read_cb, self._close_cb, connect_timeout=2)
     yield c.connect()
     data1 = format_args_in_redis_protocol("PING")
     data2 = b"*1\r\b$4\r\nQUIT\r\n"
     c.write(data1)
     c.write(data2)
     reply1 = yield self.reply_queue.get()
     self.assertEquals(reply1, b"PONG")
     reply2 = yield self.reply_queue.get()
     self.assertEquals(reply2, b"OK")
     c.write(data1)
     # Wait a short moment while the server closes the socket
     yield tornado.gen.sleep(.0001)
     c._handle_write()
     c._handle_read()
     self.assertFalse(c.is_connected())
     c.disconnect()
Example #7
0
 def test_bad_connect(self):
     c = Connection(self._read_cb, self._close_cb, host="bad_host__")
     res = yield c.connect()
     self.assertFalse(res)
     c.disconnect()
Example #8
0
 def test_init_with_tcp_nodelay(self):
     c = Connection(self._read_cb, self._close_cb, tcp_nodelay=True)
     yield c.connect()
     c.disconnect()
Example #9
0
 def test_init(self):
     c = Connection(self._read_cb, self._close_cb)
     yield c.connect()
     c.disconnect()
Example #10
0
 def test_init(self):
     c = Connection(self._read_cb,
                    self._close_cb,
                    unix_domain_socket="/tmp/redis.sock")
     yield c.connect()
     c.disconnect()