예제 #1
0
 def test_responseError(self):
     test = b'-ERR random error\r\n'
     p = redis_parser()
     p.feed(test)
     value = p.get()
     self.assertIsInstance(value, ResponseError)
     self.assertEqual(str(value), 'random error')
예제 #2
0
 def test_noscriptError(self):
     test = b'-NOSCRIPT random error\r\n'
     p = redis_parser()
     p.feed(test)
     value = p.get()
     self.assertIsInstance(value, NoScriptError)
     self.assertEqual(str(value), 'random error')
예제 #3
0
 def test_noscriptError(self):
     test = b'-NOSCRIPT random error\r\n'
     p = redis_parser()
     p.feed(test)
     value = p.get()
     self.assertIsInstance(value, NoScriptError)
     self.assertEqual(str(value), 'random error')
예제 #4
0
파일: pulsards.py 프로젝트: LJS109/pulsar
 def create_store(cls, address, namespace=None, pool_size=2, **kw):
     if cls.redis_py_parser:
         kw['parser_class'] = redis_parser(True)
     if not namespace:
         namespace = cls.randomkey(6).lower()
     return create_store(address, namespace=namespace,
                         pool_size=pool_size, **kw)
예제 #5
0
 def test_responseError(self):
     test = b'-ERR random error\r\n'
     p = redis_parser()
     p.feed(test)
     value = p.get()
     self.assertIsInstance(value, ResponseError)
     self.assertEqual(str(value), 'random error')
예제 #6
0
 def create_store(cls, address, namespace=None, pool_size=2, **kw):
     if cls.redis_py_parser:
         kw['parser_class'] = redis_parser(True)
     if not namespace:
         namespace = cls.randomkey(6).lower()
     return create_store(address, namespace=namespace,
                         pool_size=pool_size, **kw)
예제 #7
0
 def test_binary(self):
     test = (b'$31\r\n\x80\x02]q\x00(X\x04\x00\x00\x00ciaoq\x01X\x05\x00'
             b'\x00\x00pippoq\x02e.\r\n')
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.buffer(), test)
     value = p.get()
     self.assertTrue(value)
     self.assertEqual(p.buffer(), b'')
예제 #8
0
 def setUpClass(cls):
     size = cls.cfg.size
     nsize = cls._sizes[size]
     cls.data = [''.join((choice(characters) for l in range(20)))
                 for s in range(nsize)]
     cls.data_bytes = [(''.join((choice(characters) for l in range(20)))
                        ).encode('utf-8') for s in range(nsize)]
     cls.parser = redis_parser(cls.redis_py_parser)()
     cls.chunk = cls.parser.multi_bulk(cls.data)
예제 #9
0
 def test_binary(self):
     test = (b'$31\r\n\x80\x02]q\x00(X\x04\x00\x00\x00ciaoq\x01X\x05\x00'
             b'\x00\x00pippoq\x02e.\r\n')
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.buffer(), test)
     value = p.get()
     self.assertTrue(value)
     self.assertEqual(p.buffer(), b'')
예제 #10
0
 def test_nested(self):
     p = redis_parser()
     result = lua_nested_table(2)
     chunk = p.multi_bulk(result)
     p.feed(chunk)
     res2 = p.get()
     self.assertEqual(len(res2), len(result))
     self.assertEqual(res2[0], b'100')
     self.assertEqual(res2[1], result[1])
예제 #11
0
 def test_nested(self):
     p = redis_parser()
     result = lua_nested_table(2)
     chunk = p.multi_bulk(result)
     p.feed(chunk)
     res2 = p.get()
     self.assertEqual(len(res2), len(result))
     self.assertEqual(res2[0], b'100')
     self.assertEqual(res2[1], result[1])
예제 #12
0
 def test_multi(self):
     test = (b'+OK\r\n+QUEUED\r\n+QUEUED\r\n+QUEUED\r\n*3\r\n$-1\r\n:1'
             b'\r\n:39\r\n')
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), b'OK')
     self.assertEqual(p.get(), b'QUEUED')
     self.assertEqual(p.get(), b'QUEUED')
     self.assertEqual(p.get(), b'QUEUED')
     self.assertEqual(p.get(), [None, 1, 39])
예제 #13
0
 def test_multi(self):
     test = (b'+OK\r\n+QUEUED\r\n+QUEUED\r\n+QUEUED\r\n*3\r\n$-1\r\n:1'
             b'\r\n:39\r\n')
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), b'OK')
     self.assertEqual(p.get(), b'QUEUED')
     self.assertEqual(p.get(), b'QUEUED')
     self.assertEqual(p.get(), b'QUEUED')
     self.assertEqual(p.get(), [None, 1, 39])
예제 #14
0
파일: store.py 프로젝트: robgil/pulsar
 def _init(self, namespace=None, parser_class=None, pool_size=50,
           decode_responses=False, **kwargs):
     self._decode_responses = decode_responses
     if not parser_class:
         actor = get_actor()
         pyparser = actor.cfg.redis_py_parser if actor else False
         parser_class = redis_parser(pyparser)
     self._parser_class = parser_class
     if namespace:
         self._urlparams['namespace'] = namespace
     self._pool = Pool(self.connect, pool_size=pool_size, loop=self._loop)
     self.loaded_scripts = {}
예제 #15
0
파일: store.py 프로젝트: huobao36/pulsar
 def _init(self, namespace=None, parser_class=None, pool_size=50,
           decode_responses=False, **kwargs):
     self._decode_responses = decode_responses
     if not parser_class:
         actor = get_actor()
         pyparser = actor.cfg.redis_py_parser if actor else False
         parser_class = redis_parser(pyparser)
     self._parser_class = parser_class
     if namespace:
         self._urlparams['namespace'] = namespace
     self._pool = Pool(self.connect, pool_size=pool_size, loop=self._loop)
     self.loaded_scripts = {}
예제 #16
0
 def test_nested_a_drop_at_a_time(self):
     p = redis_parser()
     result = lua_nested_table(3)
     data = p.multi_bulk(result)
     while data:
         self.assertEqual(p.get(), False)
         i = randint(1, 30)
         chunk, data = data[:i], data[i:]
         p.feed(chunk)
     res2 = p.get()
     self.assertEqual(len(res2), len(result))
     self.assertEqual(res2[0], b'100')
     self.assertEqual(res2[1], result[1])
예제 #17
0
 def test_nested_a_drop_at_a_time(self):
     p = redis_parser()
     result = lua_nested_table(3)
     data = p.multi_bulk(result)
     while data:
         self.assertEqual(p.get(), False)
         i = randint(1, 30)
         chunk, data = data[:i], data[i:]
         p.feed(chunk)
     res2 = p.get()
     self.assertEqual(len(res2), len(result))
     self.assertEqual(res2[0], b'100')
     self.assertEqual(res2[1], result[1])
예제 #18
0
 def test_nested_bug_fixer(self):
     p = redis_parser()
     result = [
         b'100', b'1234567890', [b'-8', b'1234567890', None],
         [b'-8', b'1234567890', None], b'1'
     ]
     data = p.multi_bulk(result)
     chunks = [
         b'*5\r\n$3\r\n100', b'\r\n$10\r\n12345', b'67890\r\n*3',
         b'\r\n$2\r', b'\n-8\r\n$10\r', b'\n1234567890\r\n$-1\r\n',
         b'*3\r\n$2\r\n-8\r\n$10\r\n1234567890\r\n$-1\r\n$1\r\n1\r\n'
     ]
     self.assertEqual(data, b''.join(chunks))
     for chunk in chunks[:-1]:
         p.feed(chunk)
         self.assertEqual(p.get(), False)
     p.feed(chunks[-1])
     self.assertEqual(p.get(), result)
예제 #19
0
 def test_nested_bug_fixer(self):
     p = redis_parser()
     result = [b'100',
               b'1234567890',
               [b'-8', b'1234567890', None],
               [b'-8', b'1234567890', None],
               b'1']
     data = p.multi_bulk(result)
     chunks = [b'*5\r\n$3\r\n100',
               b'\r\n$10\r\n12345',
               b'67890\r\n*3',
               b'\r\n$2\r',
               b'\n-8\r\n$10\r',
               b'\n1234567890\r\n$-1\r\n',
               b'*3\r\n$2\r\n-8\r\n$10\r\n1234567890\r\n$-1\r\n$1\r\n1\r\n']
     self.assertEqual(data, b''.join(chunks))
     for chunk in chunks[:-1]:
         p.feed(chunk)
         self.assertEqual(p.get(), False)
     p.feed(chunks[-1])
     self.assertEqual(p.get(), result)
예제 #20
0
 def test_empty_string(self):
     test = b'$0\r\n\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), b'')
     self.assertEqual(p.buffer(), b'')
예제 #21
0
 def test_parseError(self):
     test = b'pxxxx\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertRaises(InvalidResponse, p.get)
예제 #22
0
 def test_empty_vector(self):
     test = b'*0\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), [])
     self.assertEqual(p.buffer(), b'')
예제 #23
0
 def test_empty_string(self):
     test = b'$0\r\n\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), b'')
     self.assertEqual(p.buffer(), b'')
예제 #24
0
 def test_null(self):
     test = b'$-1\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), None)
예제 #25
0
파일: parser.py 프로젝트: Danzeer/pulsar
 def parser(self):
     return redis_parser(True)()
예제 #26
0
 def test_encode_empty_string(self):
     p = redis_parser()
     chunk = p.bulk(None)
     self.assertEqual(chunk, b'$-1\r\n')
예제 #27
0
 def test_null(self):
     test = b'$-1\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), None)
예제 #28
0
파일: parser.py 프로젝트: Danzeer/pulsar
 def parser(self):
     return redis_parser()()
예제 #29
0
 def test_empty_vector(self):
     test = b'*0\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertEqual(p.get(), [])
     self.assertEqual(p.buffer(), b'')
예제 #30
0
 def parser(self):
     return redis_parser()()
예제 #31
0
 def test_parseError(self):
     test = b'pxxxx\r\n'
     p = redis_parser()
     p.feed(test)
     self.assertRaises(InvalidResponse, p.get)
예제 #32
0
 def test_encode_multi_bulk(self):
     p = redis_parser()
     self.assertEqual(p.multi_bulk([]), b'*0\r\n')
     self.assertEqual(p.multi_bulk(()), b'*0\r\n')
예제 #33
0
 def test_encode_commands(self):
     p = redis_parser()
     chunk = p.pack_command(['whatever', None])
     self.assertEqual(chunk, b'*2\r\n$8\r\nwhatever\r\n$4\r\nNone\r\n')
예제 #34
0
 def test_encode_commands(self):
     p = redis_parser()
     chunk = p.pack_command(['whatever', None])
     self.assertEqual(chunk, b'*2\r\n$8\r\nwhatever\r\n$4\r\nNone\r\n')
예제 #35
0
 def test_encode_empty_string(self):
     p = redis_parser()
     chunk = p.bulk(None)
     self.assertEqual(chunk, b'$-1\r\n')
예제 #36
0
 def parser(self):
     return redis_parser(True)()
예제 #37
0
 def test_encode_multi_bulk(self):
     p = redis_parser()
     self.assertEqual(p.multi_bulk([]), b'*0\r\n')
     self.assertEqual(p.multi_bulk(()), b'*0\r\n')