Esempio n. 1
0
 def test_data_error(self):
     # case where we do not know how to unpack gibson data type
     data = b'\x06\x00\x05\x03\x00\x00\x00bar'
     parser = Reader()
     parser.feed(data)
     with self.assertRaises(errors.ProtocolError):
         parser.gets()
Esempio n. 2
0
    def test_kv(self):
        data = b'\x07\x00\x007\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00' \
               b'foo1\x00\x04\x00\x00\x00bar1\x04\x00\x00\x00' \
               b'foo2\x00\x04\x00\x00\x00bar2\x04\x00\x00\x00f' \
               b'oo3\x00\x04\x00\x00\x00bar3'

        parser = Reader()
        parser.feed(data)
        obj = parser.gets()
        expected = [b'foo1', b'bar1', b'foo2', b'bar2', b'foo3', b'bar3']
        self.assertEqual(obj, expected)
Esempio n. 3
0
    def test_kv(self):
        data = b'\x07\x00\x007\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00' \
               b'foo1\x00\x04\x00\x00\x00bar1\x04\x00\x00\x00' \
               b'foo2\x00\x04\x00\x00\x00bar2\x04\x00\x00\x00f' \
               b'oo3\x00\x04\x00\x00\x00bar3'

        parser = Reader()
        parser.feed(data)
        obj = parser.gets()
        expected = [b'foo1', b'bar1', b'foo2', b'bar2', b'foo3', b'bar3']
        self.assertEqual(obj, expected)
Esempio n. 4
0
    def test_chunked_read(self):
        parser = Reader()
        data = [b'\x06\x00', b'\x00', b'\x03', b'\x00\x00', b'\x00', b'bar']
        parser.feed(b'')
        for i, b in enumerate(data):
            parser.feed(b)
            obj = parser.gets()
            if i == len(data) - 1:
                self.assertEqual(obj, b'bar')
            else:
                self.assertEqual(obj, False)

        data2 = [b'\x06\x00', b'\x00', b'\x03', b'\x00\x00', b'\x00', b'zap']
        for i, b in enumerate(data2):
            parser.feed(b)
            obj = parser.gets()
            if i == len(data2) - 1:
                self.assertEqual(obj, b'zap')
            else:
                self.assertEqual(obj, False)
Esempio n. 5
0
 def test_data_error(self):
     # case where we do not know how to unpack gibson data type
     data = b'\x06\x00\x05\x03\x00\x00\x00bar'
     parser = Reader()
     parser.feed(data)
     with self.assertRaises(errors.ProtocolError):
         parser.gets()
Esempio n. 6
0
    def test_chunked_read(self):
        parser = Reader()
        data = [b'\x06\x00', b'\x00', b'\x03', b'\x00\x00', b'\x00', b'bar']
        parser.feed(b'')
        for i, b in enumerate(data):
            parser.feed(b)
            obj = parser.gets()
            if i == len(data)-1:
                self.assertEqual(obj, b'bar')
            else:
                self.assertEqual(obj, False)

        data2 = [b'\x06\x00', b'\x00', b'\x03', b'\x00\x00', b'\x00', b'zap']
        for i, b in enumerate(data2):
            parser.feed(b)
            obj = parser.gets()
            if i == len(data2) - 1:
                self.assertEqual(obj, b'zap')
            else:
                self.assertEqual(obj, False)
Esempio n. 7
0
 def test_val(self):
     data = b'\x06\x00\x00\x03\x00\x00\x00bar'
     parser = Reader()
     parser.feed(data)
     resp = parser.gets()
     self.assertEqual(resp, b'bar')
Esempio n. 8
0
 def test_val(self):
     data = b'\x06\x00\x00\x03\x00\x00\x00bar'
     parser = Reader()
     parser.feed(data)
     resp = parser.gets()
     self.assertEqual(resp, b'bar')
Esempio n. 9
0
 def test_ok(self):
     data = b'\x05\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertEqual(obj, True)
Esempio n. 10
0
 def test_err_mem(self):
     data = b'\x03\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.MemoryLimitError)
Esempio n. 11
0
 def test_err_generic(self):
     data = b'\x00\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.GibsonError)
Esempio n. 12
0
 def test_err_mem(self):
     data = b'\x03\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.MemoryLimitError)
Esempio n. 13
0
 def test_not_found(self):
     data = b'\x01\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertEqual(obj, None)
Esempio n. 14
0
 def test_err_nan(self):
     data = b'\x02\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.ExpectedANumber)
Esempio n. 15
0
 def test_err_generic(self):
     data = b'\x00\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.GibsonError)
Esempio n. 16
0
 def test_err_locked(self):
     data = b'\x04\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.KeyLockedError)
Esempio n. 17
0
 def test_not_found(self):
     data = b'\x01\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertEqual(obj, None)
Esempio n. 18
0
 def test_ok(self):
     data = b'\x05\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertEqual(obj, True)
Esempio n. 19
0
 def test_err_nan(self):
     data = b'\x02\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.ExpectedANumber)
Esempio n. 20
0
 def test_protocol_error(self):
     data = b'\x09\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     with self.assertRaises(errors.ProtocolError):
         parser.gets()
Esempio n. 21
0
 def test_err_locked(self):
     data = b'\x04\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertIsInstance(obj, errors.KeyLockedError)
Esempio n. 22
0
 def test_gb_encoding(self):
     data = b'\x06\x00\x02\x08\x00\x00\x00M\x00\x00\x00\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertEqual(obj, 77)
Esempio n. 23
0
 def test_protocol_error(self):
     data = b'\x09\x00\x00\x01\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     with self.assertRaises(errors.ProtocolError):
         parser.gets()
Esempio n. 24
0
 def test_gb_encoding(self):
     data = b'\x06\x00\x02\x08\x00\x00\x00M\x00\x00\x00\x00\x00\x00\x00'
     parser = Reader()
     parser.feed(data)
     obj = parser.gets()
     self.assertEqual(obj, 77)