Exemple #1
0
def test_cornercases():
    """
    Test degenerate arguments.
    """
    stream = rminiz_oxide.deflateInit()
    bytes = rminiz_oxide.compress(stream, "")
    bytes += rminiz_oxide.compress(stream, "")
    bytes += rminiz_oxide.compress(stream, "", rminiz_oxide.Z_FINISH)
    assert zlib.decompress(bytes) == ""
    rminiz_oxide.deflateEnd(stream)

    stream = rminiz_oxide.inflateInit()
    data, finished, unused = rminiz_oxide.decompress(stream, "")
    assert data == ""
    assert finished is False
    assert unused == 0
    buf = compressed
    for i in range(10):
        data, finished, unused = rminiz_oxide.decompress(stream,
                                                         buf,
                                                         max_length=0)
        assert data == ""
        assert finished is False
        assert unused > 0
        buf = buf[-unused:]
    rminiz_oxide.inflateEnd(stream)
Exemple #2
0
def test_compression():
    """
    Once we have got a deflate stream, rminiz_oxide.compress() 
    should allow us to compress bytes.
    """
    stream = rminiz_oxide.deflateInit()
    bytes = rminiz_oxide.compress(stream, expanded)
    bytes += rminiz_oxide.compress(stream, "", rminiz_oxide.Z_FINISH)
    rminiz_oxide.deflateEnd(stream)
    assert bytes == compressed
Exemple #3
0
def test_compression_lots_of_data():
    """
    Test compression of more data that fits in a single internal output buffer.
    """
    expanded = repr(range(20000))
    compressed = zlib.compress(expanded)
    print len(expanded), '=>', len(compressed)
    stream = rminiz_oxide.deflateInit()
    bytes = rminiz_oxide.compress(stream, expanded, rminiz_oxide.Z_FINISH)
    rminiz_oxide.deflateEnd(stream)
    assert bytes == compressed
Exemple #4
0
 def f(i, check):
     bytes = "s" * i
     if check == 1:
         for j in range(3):
             stream = rminiz_oxide.deflateInit()
             bytes = rminiz_oxide.compress(stream, bytes,
                                           rminiz_oxide.Z_FINISH)
             rminiz_oxide.deflateEnd(stream)
         return bytes
     if check == 2:
         return str(rminiz_oxide.adler32(bytes))
     if check == 3:
         return str(rminiz_oxide.crc32(bytes))
     return '?'
Exemple #5
0
 def __init__(self, space, level=rminiz_oxide.Z_DEFAULT_COMPRESSION,
              method=rminiz_oxide.Z_DEFLATED,             # \
              wbits=rminiz_oxide.MAX_WBITS,               #  \   undocumented
              memLevel=rminiz_oxide.DEF_MEM_LEVEL,        #  /    parameters
              strategy=rminiz_oxide.Z_DEFAULT_STRATEGY):  # /
     ZLibObject.__init__(self, space)
     try:
         self.stream = rminiz_oxide.deflateInit(level, method, wbits,
                                         memLevel, strategy)
     except rminiz_oxide.RZlibError as e:
         raise zlib_error(space, e.msg)
     except ValueError:
         raise oefmt(space.w_ValueError, "Invalid initialization option")
     self.register_finalizer(space)
Exemple #6
0
def compress(space, string, level=rminiz_oxide.Z_DEFAULT_COMPRESSION):
    """
    compress(string[, level]) -- Returned compressed string.

    Optional arg level is the compression level, in 1-9.
    """
    try:
        try:
            stream = rminiz_oxide.deflateInit(level)
        except ValueError:
            raise zlib_error(space, "Bad compression level")
        try:
            result = rminiz_oxide.compress(stream, string, rminiz_oxide.Z_FINISH)
        finally:
            rminiz_oxide.deflateEnd(stream)
    except rminiz_oxide.RZlibError as e:
        raise zlib_error(space, e.msg)
    return space.newbytes(result)
Exemple #7
0
def test_deflate_init_end():
    """
    deflateInit() followed by deflateEnd() should work and do nothing.
    """
    stream = rminiz_oxide.deflateInit()
    rminiz_oxide.deflateEnd(stream)