Ejemplo 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()
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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()
Ejemplo 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)
Ejemplo 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')
Ejemplo 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')
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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)
Ejemplo 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()
Ejemplo 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)
Ejemplo 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)
Ejemplo 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()
Ejemplo 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)