Example #1
0
 def testException(self):
     p = RedisParser()
     p.feed(b':abc\r\n')
     try:
         p.gets()
         self.assertTrue(False)
     except:
         pass
Example #2
0
 def testNested(self):
     p = RedisParser()
     p.feed(b'*5\r\n*2\r\n+OK\r\n:3\r\n-ERR test\r\n*2\r\n$20\r\n*2\r\n+OK\r\n$5\r\nabcde\r\n\r\n:-999999\r\n*1\r\n*1\r\n*1\r\n*1\r\n+OK\r\n$-1\r\n')
     a = p.gets()
     self.assertTrue(isinstance(a, list))
     self.assertEqual(len(a), 5)
     self.assertEqual(a[0], [b'OK', 3])
     self.assertTrue(isinstance(a[1], Exception) and str(a[1]) == 'ERR test')
     self.assertEqual(a[2], [b'*2\r\n+OK\r\n$5\r\nabcde\r\n', -999999])
     self.assertEqual(a[3], [[[[b'OK']]]])
     self.assertEqual(a[4], None)
     self.assertEqual(p.gets(), False)
Example #3
0
    def testTime(self):
        p = RedisParser()

        def test():
            p.feed(
                b'*5\r\n*2\r\n+OK\r\n:3\r\n-ERR test\r\n*2\r\n$20\r\n*2\r\n+OK\r\n$5\r\nabcde\r\n\r\n:-999999\r\n*1\r\n*1\r\n*1\r\n*1\r\n+OK\r\n$-1\r\n'
            )
            p.gets()

        print(timeit(test, number=10000))
Example #4
0
 def testNested2(self):
     data = b'*5\r\n*2\r\n+OK\r\n:3\r\n-ERR test\r\n*2\r\n$20\r\n*2\r\n+OK\r\n$5\r\nabcde\r\n\r\n:-999999\r\n*1\r\n*1\r\n*1\r\n*1\r\n+OK\r\n$-1\r\n'
     for i in range(1, len(data)):
         p = RedisParser()
         p.feed(data[:i])
         self.assertEqual(p.gets(), False)
         p.feed(data[i:])
         a = p.gets()
         self.assertTrue(isinstance(a, list))
         self.assertEqual(len(a), 5)
         self.assertEqual(a[0], [b'OK', 3])
         self.assertTrue(
             isinstance(a[1], Exception) and str(a[1]) == 'ERR test')
         self.assertEqual(a[2], [b'*2\r\n+OK\r\n$5\r\nabcde\r\n', -999999])
         self.assertEqual(a[3], [[[[b'OK']]]])
         self.assertEqual(a[4], None)
         self.assertEqual(p.gets(), False)
Example #5
0
 def testParser(self):
     p = RedisParser()
     p.feed(
         b'+OK\r\n-ERR test\r\n:18\r\n$5\r\nabcde\r\n*3\r\n+OK\r\n-ERR test2\r\n$6\r\na\r\nb\r\n\r\n'
     )
     self.assertEqual(p.gets(), b'OK')
     e = p.gets()
     self.assertTrue(isinstance(e, Exception) and str(e) == 'ERR test')
     self.assertEqual(p.gets(), 18)
     self.assertEqual(p.gets(), b'abcde')
     a = p.gets()
     self.assertTrue(isinstance(a, list))
     self.assertEqual(len(a), 3)
     self.assertEqual(a[0], b'OK')
     self.assertTrue(
         isinstance(a[1], Exception) and str(a[1]) == 'ERR test2')
     self.assertEqual(a[2], b'a\r\nb\r\n')
     self.assertEqual(p.gets(), False)
Example #6
0
 def testParser(self):
     p = RedisParser()
     p.feed(b'+OK\r\n-ERR test\r\n:18\r\n$5\r\nabcde\r\n*3\r\n+OK\r\n-ERR test2\r\n$6\r\na\r\nb\r\n\r\n')
     self.assertEqual(p.gets(), b'OK')
     e = p.gets()
     self.assertTrue(isinstance(e, Exception) and str(e) == 'ERR test')
     self.assertEqual(p.gets(), 18)
     self.assertEqual(p.gets(), b'abcde')
     a = p.gets()
     self.assertTrue(isinstance(a, list))
     self.assertEqual(len(a), 3)
     self.assertEqual(a[0], b'OK')
     self.assertTrue(isinstance(a[1], Exception) and str(a[1]) == 'ERR test2')
     self.assertEqual(a[2], b'a\r\nb\r\n')
     self.assertEqual(p.gets(), False)
Example #7
0
 def testException(self):
     p = RedisParser()
     p.feed(b':abc\r\n')
     try:
         p.gets()
         self.assertTrue(False)
     except:
         pass
Example #8
0
 def testNone(self):
     p = RedisParser()
     p.feed(b'$-1\r\n')
     self.assertEqual(p.gets(), None)
     self.assertEqual(p.gets(), False)
     p.feed(b'$0\r\n')
     self.assertEqual(p.gets(), False)
     p.feed(b'\r\n')
     self.assertEqual(p.gets(), b'')
     self.assertEqual(p.gets(), False)
     p.feed(b'+\r\n')
     self.assertEqual(p.gets(), b'')
     self.assertEqual(p.gets(), False)
     p.feed(b'*0\r\n')
     self.assertEqual(p.gets(), [])
     self.assertEqual(p.gets(), False)
     p.feed(b'*-1\r\n')
     self.assertEqual(p.gets(), None)
     self.assertEqual(p.gets(), False)
Example #9
0
 def testContinue(self):
     p = RedisParser()
     p.feed(b'$5\r\nabcde\r')
     self.assertEqual(p.gets(), False)
     p.feed(b'\n:5\r')
     self.assertEqual(p.gets(), b'abcde')
     self.assertEqual(p.gets(), False)
     p.feed(b'\n*2\r\n+O')
     self.assertEqual(p.gets(), 5)
     self.assertEqual(p.gets(), False)
     p.feed(b'K\r\n')
     self.assertEqual(p.gets(), False)
     p.feed(b'*2\r\n:3\r\n$4\r\nab\r\n')
     self.assertEqual(p.gets(), False)
     p.feed(b'\r\n')
     self.assertEqual(p.gets(), [b'OK', [3, b'ab\r\n']])
     self.assertEqual(p.gets(), False)
Example #10
0
 def testException(self):
     p = RedisParser()
     p.feed(b':abc\r\n')
     with self.assertRaises(Exception):
         p.gets()
Example #11
0
 def testMaxInt(self):
     p = RedisParser()
     p.feed(b':9223372036854775807\r\n:-9223372036854775808\r\n')
     self.assertEqual(p.gets(), 9223372036854775807)
     self.assertEqual(p.gets(), -9223372036854775808)
     self.assertEqual(p.gets(), False)
Example #12
0
 def testNone(self):
     p = RedisParser()
     p.feed(b'$-1\r\n')
     self.assertEqual(p.gets(), None)
     self.assertEqual(p.gets(), False)
     p.feed(b'$0\r\n')
     self.assertEqual(p.gets(), False)
     p.feed(b'\r\n')
     self.assertEqual(p.gets(), b'')
     self.assertEqual(p.gets(), False)
     p.feed(b'+\r\n')
     self.assertEqual(p.gets(), b'')
     self.assertEqual(p.gets(), False)
     p.feed(b'*0\r\n')
     self.assertEqual(p.gets(), [])
     self.assertEqual(p.gets(), False)
     p.feed(b'*-1\r\n')
     self.assertEqual(p.gets(), None)
     self.assertEqual(p.gets(), False)
Example #13
0
 def testContinue(self):
     p = RedisParser()
     p.feed(b'$5\r\nabcde\r')
     self.assertEqual(p.gets(), False)
     p.feed(b'\n:5\r')
     self.assertEqual(p.gets(), b'abcde')
     self.assertEqual(p.gets(), False)
     p.feed(b'\n*2\r\n+O')
     self.assertEqual(p.gets(), 5)
     self.assertEqual(p.gets(), False)
     p.feed(b'K\r\n')
     self.assertEqual(p.gets(), False)
     p.feed(b'*2\r\n:3\r\n$4\r\nab\r\n')
     self.assertEqual(p.gets(), False)
     p.feed(b'\r\n')
     self.assertEqual(p.gets(), [b'OK', [3, b'ab\r\n']])
     self.assertEqual(p.gets(), False)
Example #14
0
 def testMaxInt(self):
     p = RedisParser()
     p.feed(b':9223372036854775807\r\n:-9223372036854775808\r\n')
     self.assertEqual(p.gets(), 9223372036854775807)
     self.assertEqual(p.gets(), -9223372036854775808)
     self.assertEqual(p.gets(), False)