mirror of https://github.com/celery/kombu.git
94 lines
2.8 KiB
Python
94 lines
2.8 KiB
Python
from __future__ import annotations
|
|
|
|
import sys
|
|
|
|
import pytest
|
|
|
|
from kombu import compression
|
|
|
|
|
|
class test_compression:
|
|
|
|
def test_encoders__gzip(self):
|
|
assert 'application/x-gzip' in compression.encoders()
|
|
|
|
def test_encoders__bz2(self):
|
|
pytest.importorskip('bz2')
|
|
assert 'application/x-bz2' in compression.encoders()
|
|
|
|
def test_encoders__brotli(self):
|
|
pytest.importorskip('brotli')
|
|
|
|
assert 'application/x-brotli' in compression.encoders()
|
|
|
|
def test_encoders__lzma(self):
|
|
pytest.importorskip('lzma')
|
|
|
|
assert 'application/x-lzma' in compression.encoders()
|
|
|
|
def test_encoders__zstd(self):
|
|
pytest.importorskip('zstandard')
|
|
|
|
assert 'application/zstd' in compression.encoders()
|
|
|
|
def test_compress__decompress__zlib(self):
|
|
text = b'The Quick Brown Fox Jumps Over The Lazy Dog'
|
|
c, ctype = compression.compress(text, 'zlib')
|
|
assert text != c
|
|
d = compression.decompress(c, ctype)
|
|
assert d == text
|
|
|
|
def test_compress__decompress__bzip2(self):
|
|
text = b'The Brown Quick Fox Over The Lazy Dog Jumps'
|
|
c, ctype = compression.compress(text, 'bzip2')
|
|
assert text != c
|
|
d = compression.decompress(c, ctype)
|
|
assert d == text
|
|
|
|
def test_compress__decompress__brotli(self):
|
|
pytest.importorskip('brotli')
|
|
|
|
text = b'The Brown Quick Fox Over The Lazy Dog Jumps'
|
|
c, ctype = compression.compress(text, 'brotli')
|
|
assert text != c
|
|
d = compression.decompress(c, ctype)
|
|
assert d == text
|
|
|
|
def test_compress__decompress__lzma(self):
|
|
pytest.importorskip('lzma')
|
|
|
|
text = b'The Brown Quick Fox Over The Lazy Dog Jumps'
|
|
c, ctype = compression.compress(text, 'lzma')
|
|
assert text != c
|
|
d = compression.decompress(c, ctype)
|
|
assert d == text
|
|
|
|
def test_compress__decompress__zstd(self):
|
|
pytest.importorskip('zstandard')
|
|
|
|
text = b'The Brown Quick Fox Over The Lazy Dog Jumps'
|
|
c, ctype = compression.compress(text, 'zstd')
|
|
assert text != c
|
|
d = compression.decompress(c, ctype)
|
|
assert d == text
|
|
|
|
@pytest.mark.masked_modules('bz2')
|
|
def test_no_bz2(self, mask_modules):
|
|
c = sys.modules.pop('kombu.compression')
|
|
try:
|
|
import kombu.compression
|
|
assert not hasattr(kombu.compression, 'bz2')
|
|
finally:
|
|
if c is not None:
|
|
sys.modules['kombu.compression'] = c
|
|
|
|
@pytest.mark.masked_modules('lzma')
|
|
def test_no_lzma(self, mask_modules):
|
|
c = sys.modules.pop('kombu.compression')
|
|
try:
|
|
import kombu.compression
|
|
assert not hasattr(kombu.compression, 'lzma')
|
|
finally:
|
|
if c is not None:
|
|
sys.modules['kombu.compression'] = c
|