Exemple #1
0
 def test_multi_write_compress(self):
     byte_list = [random.randint(0, 255) for i in range(10000)]
     data = six.binary_type(bytearray(byte_list))
     stream = six.BytesIO()
     with ZipCompressedWriter(stream) as z_writer:
         for i in byte_list:
             z_writer.write(_bytes(i))
     zipped = zlib.compress(data)
     self.assertSequenceEqual(stream.getvalue(), zipped)
Exemple #2
0
    def serialize(self, pyExpr):
        """
        Serialize the python expression given as parameter.
        """
        # the header is never compressed.
        self._writer.write(WXF_VERSION)
        if self._compress:
            self._writer.write(WXF_HEADER_COMPRESS)
        self._writer.write(WXF_HEADER_SEPARATOR)
        # end of uncompressed header. Eventually using compressed data.
        if self._compress:
            with ZipCompressedWriter(self._writer) as writer:
                for wxfexpr in self.provide_wxfexpr(pyExpr):
                    wxfexpr._serialize_to_wxf(writer, self._context)
        else:
            for wxfexpr in self.provide_wxfexpr(pyExpr):
                wxfexpr._serialize_to_wxf(self._writer, self._context)

        if not self._context.is_valid_final_state():
            raise WXFSerializerException("Inconsistent state: truncated expr.")
Exemple #3
0
 def test_compress(self):
     stream = six.BytesIO()
     with ZipCompressedWriter(stream) as z_writer:
         z_writer.write(b"abc")
     zipped = b"x\x9cKLJ\x06\x00\x02M\x01'"
     self.assertSequenceEqual(stream.getvalue(), zipped)