Exemplo n.º 1
0
def test_process_alias(s):
    c1 = brotlicffi.Compressor()
    c2 = brotlicffi.Compressor()
    d1 = brotlicffi.Decompressor()
    d2 = brotlicffi.Decompressor()
    s1 = c1.compress(s) + c1.finish()
    s2 = c2.process(s) + c2.finish()
    assert ((d1.decompress(s1) + d1.finish()) ==
            (d2.process(s2) + d2.finish()) == s)
Exemplo n.º 2
0
def test_streaming_decompression_fails_properly_on_garbage(exception_cls):
    """
    Garbage data properly fails decompression.
    """
    o = brotlicffi.Decompressor()
    with pytest.raises(exception_cls):
        o.decompress(b'some random garbage')
    assert not o.is_finished()
Exemplo n.º 3
0
def main():
    data = sys.argv[1].encode("utf-8")
    print(f"Compressing data: {data}")

    compressor = brotli.Compressor(mode=brotli.MODE_TEXT)
    compressed = compressor.process(data) + compressor.finish()
    print(f"Compressed data: {compressed}")

    decompressor = brotli.Decompressor()
    decompressed = decompressor.process(compressed) + decompressor.finish()
    print(f"Decompressed data: {decompressed}")
Exemplo n.º 4
0
def test_decompressobj(simple_compressed_file):
    with open(simple_compressed_file[0], 'rb') as f:
        uncompressed_data = f.read()

    with open(simple_compressed_file[1], 'rb') as f:
        compressed_data = f.read()

    o = brotlicffi.Decompressor()
    data = o.decompress(compressed_data)
    data += o.flush()
    data += o.finish()

    assert data == uncompressed_data
Exemplo n.º 5
0
    def __init__(self) -> None:
        if brotlicffi is None:  # pragma: nocover
            raise ImportError(
                "Using 'BrotliDecoder', but the 'brotlicffi' library "
                "is not installed."
                "Make sure to install httpx using `pip install httpx[brotli]`."
            ) from None

        self.decompressor = brotlicffi.Decompressor()
        self.seen_data = False
        if hasattr(self.decompressor, "decompress"):
            self._decompress = self.decompressor.decompress
        else:
            self._decompress = self.decompressor.process  # pragma: nocover
Exemplo n.º 6
0
def test_drip_feed(simple_compressed_file):
    """
    Sending in the data one byte at a time still works.
    """
    with open(simple_compressed_file[0], 'rb') as f:
        uncompressed_data = f.read()

    with open(simple_compressed_file[1], 'rb') as f:
        compressed_data = f.read()

    outdata = []
    o = brotlicffi.Decompressor()
    for i in range(0, len(compressed_data)):
        assert not o.is_finished()
        outdata.append(o.decompress(compressed_data[i:i + 1]))

    assert o.is_finished()
    outdata.append(o.flush())
    assert o.is_finished()
    outdata.append(o.finish())
    assert o.is_finished()

    assert b''.join(outdata) == uncompressed_data
Exemplo n.º 7
0
def test_compressed_data_with_dictionaries(s, dictionary):
    d = brotlicffi.Decompressor(dictionary)
    compressed = brotlicffi.compress(s, dictionary=dictionary)
    uncompressed = d.decompress(compressed)
    assert uncompressed == s
Exemplo n.º 8
0
 def __init__(self) -> None:
     self._obj = brotli.Decompressor()
     if hasattr(self._obj, "decompress"):
         setattr(self, "decompress", self._obj.decompress)
     else:
         setattr(self, "decompress", self._obj.process)
Exemplo n.º 9
0
 def __init__(self):
     self._obj = brotli.Decompressor()
     if hasattr(self._obj, "decompress"):
         self.decompress = self._obj.decompress
     else:
         self.decompress = self._obj.process