Skip to content

Commit 1f83b52

Browse files
committed
add test case to import brotli
1 parent 9e9658c commit 1f83b52

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

tests/test_filters.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import shutil
66
import string
77
import subprocess
8+
import sys
89
from io import BytesIO
910
from itertools import product as cartesian_product
1011
from pathlib import Path
@@ -92,6 +93,20 @@ def test_brotli_missing_installation_mocked():
9293
decode_stream_data(stream)
9394
assert "Brotli library not installed" in str(exc_info_stream.value)
9495

96+
def test_brotli_import_handling():
97+
"""Verify the try-except block for brotli import in pypdf.filters."""
98+
# Simulate brotli import failure
99+
if "brotli" in sys.modules:
100+
del sys.modules["brotli"]
101+
with patch.dict(sys.modules, {"brotli": None}):
102+
import pypdf.filters
103+
importlib.reload(pypdf.filters) # Re-evaluate module-level try-except
104+
assert pypdf.filters.brotli is None, "brotli should be None when import fails"
105+
106+
# Test successful import if brotli is installed
107+
if importlib.util.find_spec("brotli"):
108+
importlib.reload(pypdf.filters) # Re-evaluate with brotli available
109+
assert pypdf.filters.brotli is not None, "brotli should be imported when available"
95110

96111
def test_flatedecode_unsupported_predictor():
97112
"""

0 commit comments

Comments
 (0)