Пример #1
0
 def test_convert_gqtp_result_fail(self):
     grn = Groonga()
     s = grn._clock_gettime()
     e = grn._clock_gettime()
     senddata = get_send_data_for_gqtp("status")
     rawdata = senddata[:GQTP_HEADER_SIZE] + b'{"test": 0}'
     d = convert_gqtp_result_data(s, e, GRN_STATUS_UNSUPPORTED_COMMAND_VERSION, rawdata)
     d = json.loads(d)
     self.assertEqual(d[0][0], -71)
Пример #2
0
 def test_get_send_data(self):
     d = get_send_data_for_gqtp("status")
     self.assertEqual(30, len(d))
     if sys.version_info[0] == 3:
         self.assertEqual(ord("\xc7"), d[0])
     else:
         self.assertEqual("\xc7", d[0])
     (size,) = struct.unpack("!I", d[8:12])
     self.assertEqual(6, size)
Пример #3
0
 def test_convert_gqtp_result_fail(self):
     grn = Groonga()
     s = grn._clock_gettime()
     e = grn._clock_gettime()
     senddata = get_send_data_for_gqtp("status")
     rawdata = senddata[:GQTP_HEADER_SIZE] + b"{\"test\": 0}"
     d = convert_gqtp_result_data(s, e, GRN_STATUS_UNSUPPORTED_COMMAND_VERSION, rawdata)
     d = json.loads(d)
     self.assertEqual(d[0][0], -71)
Пример #4
0
 def test_convert_gqtp_result(self):
     grn = Groonga()
     s = grn._clock_gettime()
     e = grn._clock_gettime()
     senddata = get_send_data_for_gqtp("status")
     rawdata = senddata[:GQTP_HEADER_SIZE] + b'{"test": 0}'
     d = convert_gqtp_result_data(s, e, 0, rawdata)
     d = json.loads(d)
     self.assertEqual(d[0][0], 0)
Пример #5
0
 def test_convert_gqtp_result(self):
     grn = Groonga()
     s = grn._clock_gettime()
     e = grn._clock_gettime()
     senddata = get_send_data_for_gqtp("status")
     rawdata = senddata[:GQTP_HEADER_SIZE] + b"{\"test\": 0}"
     d = convert_gqtp_result_data(s, e, 0, rawdata)
     d = json.loads(d)
     self.assertEqual(d[0][0], 0)
Пример #6
0
 def test_get_send_data(self):
     d = get_send_data_for_gqtp("status")
     self.assertEqual(30, len(d))
     if sys.version_info[0] == 3:
         self.assertEqual(ord('\xc7'), d[0])
     else:
         self.assertEqual('\xc7', d[0])
     (size, ) = struct.unpack("!I", d[8:12])
     self.assertEqual(6, size)
Пример #7
0
 def test_get_send_data_with_args(self):
     kwargs = {"table": "Site"}
     d = get_send_data_for_gqtp("select", **kwargs)
     self.assertEqual(45, len(d))
     if sys.version_info[0] == 3:
         self.assertEqual(ord('\xc7'), d[0])
     else:
         self.assertEqual('\xc7', d[0])
     body = d[GQTP_HEADER_SIZE:]
     (size, ) = struct.unpack("!I", d[8:12])
     self.assertEqual(len(body), size)
Пример #8
0
 def test_get_send_data_with_args(self):
     kwargs = {"table": "Site"}
     d = get_send_data_for_gqtp("select", **kwargs)
     self.assertEqual(45, len(d))
     if sys.version_info[0] == 3:
         self.assertEqual(ord('\xc7'), d[0])
     else:
         self.assertEqual('\xc7', d[0])
     body = d[GQTP_HEADER_SIZE:]
     (size, ) = struct.unpack("!I", d[8:12])
     self.assertEqual(len(body), size)
Пример #9
0
    def test_get_send_data_with_args_and_two_bytes(self):
        kwargs = {"table": "Sitは"}
        d = get_send_data_for_gqtp("select", **kwargs)
        self.assertEqual(47, len(d))
        if sys.version_info[0] == 3:
            self.assertEqual(ord("\xc7"), d[0])
            # check body length
            self.assertEqual(23, d[11])
        else:
            self.assertEqual("\xc7", d[0])
            # check body length
            self.assertEqual("\x17", d[11])

        body = d[GQTP_HEADER_SIZE:]
        (size,) = struct.unpack("!I", d[8:12])
        self.assertEqual(len(body), size)
Пример #10
0
 async def _call_gqtp(self, cmd, **kwargs):
     _start = self._grn._clock_gettime()
     with async_timeout.timeout(self._timeout):
         _r, _w = await asyncio.open_connection(self.host,
                                                self.port,
                                                loop=self.loop)
     _w.write(get_send_data_for_gqtp(cmd, **kwargs))
     with async_timeout.timeout(self._timeout):
         await _w.drain()
     with async_timeout.timeout(self._timeout):
         raw_data = await _r.read(self._recv_buf)
     proto, qtype, keylen, level, flags, status, size, opaque, cas \
         = struct.unpack("!BBHBBHIIQ", raw_data[:GQTP_HEADER_SIZE])
     while len(raw_data) < size + GQTP_HEADER_SIZE:
         raw_data += await _r.read(self._recv_buf)
     _end = self._grn._clock_gettime()
     _w.close()
     return convert_gqtp_result_data(_start, _end, status, raw_data)