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()
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
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()
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()
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()
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()
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()
def test_init_with_tcp_nodelay(self): c = Connection(self._read_cb, self._close_cb, tcp_nodelay=True) yield c.connect() c.disconnect()
def test_init(self): c = Connection(self._read_cb, self._close_cb) yield c.connect() c.disconnect()
def test_init(self): c = Connection(self._read_cb, self._close_cb, unix_domain_socket="/tmp/redis.sock") yield c.connect() c.disconnect()