Ejemplo n.º 1
0
 def test_write_boolean_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_boolean_array([True, False, True])
     out.write_boolean_array(None)
     self.assertEqual(bytearray([0, 0, 0, 3, 1, 0, 1, 255, 255, 255, 255]),
                      out.to_byte_array())
     self.assertEqual(11, out.position())
Ejemplo n.º 2
0
    def to_data(self, obj, partitioning_strategy=None):
        """Serialize the input object into byte array representation

        Args:
            obj: Input object
            partitioning_strategy (function): Function in the form of ``lambda key: partitioning_key``.

        Returns:
            hazelcast.serialization.data.Data: Data object
        """
        if obj is None:
            return None

        if isinstance(obj, Data):
            return obj

        out = _ObjectDataOutput(self._output_buffer_size, self,
                                self._is_big_endian)
        try:
            serializer = self._registry.serializer_for(obj)
            partitioning_hash = self._calculate_partitioning_hash(
                obj, partitioning_strategy)

            out.write_int_big_endian(partitioning_hash)
            out.write_int_big_endian(serializer.get_type_id())
            serializer.write(out, obj)
            return Data(out.to_byte_array())
        except:
            handle_exception(sys.exc_info()[1], sys.exc_info()[2])
Ejemplo n.º 3
0
 def test_write_int_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_int_array([-1])
     out.write_int_array(None)
     self.assertEqual(
         bytearray([0, 0, 0, 1, 255, 255, 255, 255, 255, 255, 255, 255]),
         out.to_byte_array())
     self.assertEqual(12, out.position())
Ejemplo n.º 4
0
 def test_write_signed_byte_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_signed_byte_array([-1, 127, -128])
     out.write_signed_byte_array(None)
     self.assertEqual(
         bytearray([0, 0, 0, 3, 255, 127, 128, 255, 255, 255, 255]),
         out.to_byte_array())
     self.assertEqual(11, out.position())
Ejemplo n.º 5
0
 def test_write_zero_bytes(self):
     out = _ObjectDataOutput(0, None)
     out.write_zero_bytes(10)
     self.assertEqual(
         bytearray(10),
         out.to_byte_array(),
     )
     self.assertEqual(10, out.position())
Ejemplo n.º 6
0
 def test_write_from(self):
     out = _ObjectDataOutput(10, None)
     b = bytearray(range(10))
     out.write_from(b, 5, 3)
     self.assertEqual(
         b[5:5 + 3],
         out.to_byte_array(),
     )
Ejemplo n.º 7
0
 def test_write_char_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_char_array(["a", "b"])
     out.write_char_array(None)
     self.assertEqual(
         bytearray([0, 0, 0, 2, 0, 97, 0, 98, 255, 255, 255, 255]),
         out.to_byte_array())
     self.assertEqual(12, out.position())
Ejemplo n.º 8
0
 def test_write_chars(self):
     out = _ObjectDataOutput(10, None)
     out.write_chars("a")
     out.write_chars("bc")
     self.assertEqual(
         bytearray([0, 97, 0, 98, 0, 99]),
         out.to_byte_array(),
     )
     self.assertEqual(6, out.position())
Ejemplo n.º 9
0
 def test_write_boolean(self):
     out = _ObjectDataOutput(0, None)
     out.write_boolean(True)
     out.write_boolean(False)
     self.assertEqual(
         bytearray([1, 0]),
         out.to_byte_array(),
     )
     self.assertEqual(2, out.position())
Ejemplo n.º 10
0
 def test_write_float(self):
     out = _ObjectDataOutput(10, None)
     out.write_float(42.5)
     out.write_float(-442.4)
     self.assertEqual(
         bytearray([66, 42, 0, 0, 195, 221, 51, 51]),
         out.to_byte_array(),
     )
     self.assertEqual(8, out.position())
Ejemplo n.º 11
0
 def test_write_long(self):
     out = _ObjectDataOutput(10, None)
     out.write_long(1)
     out.write_long(-9223372036854775808)
     self.assertEqual(
         bytearray([0, 0, 0, 0, 0, 0, 0, 1, 128, 0, 0, 0, 0, 0, 0, 0]),
         out.to_byte_array(),
     )
     self.assertEqual(16, out.position())
Ejemplo n.º 12
0
 def test_write_int_big_endian(self):
     out = _ObjectDataOutput(8, None)
     out.write_int_big_endian(42)
     out.write_int_big_endian(-13)
     self.assertEqual(
         bytearray([0, 0, 0, 42, 255, 255, 255, 243]),
         out.to_byte_array(),
     )
     self.assertEqual(8, out.position())
Ejemplo n.º 13
0
 def test_write_byte_array(self):
     out = _ObjectDataOutput(10, None)
     out.write_byte_array(bytearray(range(10)))
     out.write_byte_array(None)
     self.assertEqual(
         bytearray([0, 0, 0, 10] + list(range(10)) + [255, 255, 255, 255]),
         out.to_byte_array(),
     )
     self.assertEqual(18, out.position())
Ejemplo n.º 14
0
 def test_write_short(self):
     out = _ObjectDataOutput(10, None)
     out.write_short(23456)
     out.write_short(-23456)
     self.assertEqual(
         bytearray([91, 160, 164, 96]),
         out.to_byte_array(),
     )
     self.assertEqual(4, out.position())
Ejemplo n.º 15
0
 def test_write_char(self):
     out = _ObjectDataOutput(0, None)
     out.write_char("a")
     out.write_char("1")
     self.assertEqual(
         bytearray([0, 97, 0, 49]),
         out.to_byte_array(),
     )
     self.assertEqual(4, out.position())
Ejemplo n.º 16
0
 def test_write_int_positional(self):
     out = _ObjectDataOutput(8, None)
     out.write_zero_bytes(8)
     out.write_int_positional(42, 0)
     out.write_int_positional(-13, 4)
     self.assertEqual(
         bytearray([0, 0, 0, 42, 255, 255, 255, 243]),
         out.to_byte_array(),
     )
     self.assertEqual(8, out.position())
Ejemplo n.º 17
0
 def test_write_signed_byte(self):
     out = _ObjectDataOutput(10, None)
     out.write_signed_byte(0)
     out.write_signed_byte(127)
     out.write_signed_byte(-128)
     self.assertEqual(
         bytearray([0, 127, 128]),
         out.to_byte_array(),
     )
     self.assertEqual(3, out.position())
Ejemplo n.º 18
0
 def test_write_byte(self):
     out = _ObjectDataOutput(10, None)
     out.write_byte(0)
     out.write_byte(255)
     out.write_byte(127)
     self.assertEqual(
         bytearray([0, 255, 127]),
         out.to_byte_array(),
     )
     self.assertEqual(3, out.position())
Ejemplo n.º 19
0
 def test_write_long_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_long_array([1234])
     out.write_long_array(None)
     self.assertEqual(
         bytearray(
             [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 210, 255, 255, 255, 255]),
         out.to_byte_array(),
     )
     self.assertEqual(16, out.position())
Ejemplo n.º 20
0
 def test_write_short_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_short_array([-1, 23456, -23456])
     out.write_short_array(None)
     self.assertEqual(
         bytearray(
             [0, 0, 0, 3, 255, 255, 91, 160, 164, 96, 255, 255, 255, 255]),
         out.to_byte_array(),
     )
     self.assertEqual(14, out.position())
Ejemplo n.º 21
0
 def test_write_signed_byte_positional(self):
     out = _ObjectDataOutput(10, None)
     out.write_zero_bytes(3)
     out.write_signed_byte_positional(0, 0)
     out.write_signed_byte_positional(127, 1)
     out.write_signed_byte_positional(-128, 2)
     self.assertEqual(
         bytearray([0, 127, 128]),
         out.to_byte_array(),
     )
     self.assertEqual(3, out.position())
Ejemplo n.º 22
0
 def test_write_boolean_bit_positional(self):
     out = _ObjectDataOutput(100, None)
     out.write_zero_bytes(1)
     out.write_boolean_bit_positional(True, 0, 0)
     out.write_boolean_bit_positional(False, 0, 1)
     out.write_boolean_bit_positional(True, 0, 2)
     self.assertEqual(
         bytearray([0b101]),
         out.to_byte_array(),
     )
     self.assertEqual(1, out.position())
Ejemplo n.º 23
0
 def test_write_float_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_float_array(None)
     out.write_float_array([42.5, -442.4])
     self.assertEqual(
         bytearray([
             255, 255, 255, 255, 0, 0, 0, 2, 66, 42, 0, 0, 195, 221, 51, 51
         ]),
         out.to_byte_array(),
     )
     self.assertEqual(16, out.position())
Ejemplo n.º 24
0
 def test_write_utf_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_utf_array(["a", "👹"])
     out.write_utf_array(None)
     self.assertEqual(
         bytearray([
             0, 0, 0, 2, 0, 0, 0, 1, 97, 0, 0, 0, 4, 240, 159, 145, 185,
             255, 255, 255, 255
         ]),
         out.to_byte_array(),
     )
     self.assertEqual(21, out.position())
Ejemplo n.º 25
0
 def test_write_double_array(self):
     out = _ObjectDataOutput(1, None)
     out.write_double_array(None)
     out.write_double_array([12345.6789])
     self.assertEqual(
         bytearray([
             255, 255, 255, 255, 0, 0, 0, 1, 64, 200, 28, 214, 230, 49, 248,
             161
         ]),
         out.to_byte_array(),
     )
     self.assertEqual(16, out.position())
Ejemplo n.º 26
0
 def test_write_double(self):
     out = _ObjectDataOutput(10, None)
     out.write_double(12345.6789)
     out.write_double(-98765.4321)
     self.assertEqual(
         bytearray([
             64, 200, 28, 214, 230, 49, 248, 161, 192, 248, 28, 214, 233,
             225, 176, 138
         ]),
         out.to_byte_array(),
     )
     self.assertEqual(16, out.position())
Ejemplo n.º 27
0
 def test_write_utf(self):
     out = _ObjectDataOutput(10, None)
     out.write_utf("a")
     out.write_utf(None)
     out.write_utf("👹")
     self.assertEqual(
         bytearray([
             0, 0, 0, 1, 97, 255, 255, 255, 255, 0, 0, 0, 4, 240, 159, 145,
             185
         ]),
         out.to_byte_array(),
     )
     self.assertEqual(17, out.position())
Ejemplo n.º 28
0
 def _create_data_output(self):
     return _ObjectDataOutput(self._output_buffer_size, self, self._is_big_endian)
 def setUp(self):
     self._output = _ObjectDataOutput(100, None, True)
     self.BOOL_ARR = [False, True, True, True]
     self.INT_ARR = [1, 2, 3, 4]
Ejemplo n.º 30
0
 def _create_data_output(self):
     return _ObjectDataOutput(self._output_buffer_size, self,
                              self._is_big_endian)
 def setUp(self):
     self._output = _ObjectDataOutput(100, None, True)
     self.BOOL_ARR = [False, True, True, True]
     self.INT_ARR = [1, 2, 3, 4]