25 lines
709 B
Python
25 lines
709 B
Python
import builtins
|
|
|
|
import pytest
|
|
|
|
from src.pdf_runtime import PDF_VIEWER_PYMUPDF_MISSING, load_pymupdf_for_pdf_viewer
|
|
|
|
|
|
def test_pdf_viewer_dependency_error_is_user_actionable(monkeypatch):
|
|
real_import = builtins.__import__
|
|
|
|
def fake_import(name, *args, **kwargs):
|
|
if name == "fitz":
|
|
raise ImportError("No module named fitz")
|
|
return real_import(name, *args, **kwargs)
|
|
|
|
monkeypatch.setattr(builtins, "__import__", fake_import)
|
|
|
|
with pytest.raises(RuntimeError) as exc:
|
|
load_pymupdf_for_pdf_viewer()
|
|
|
|
message = str(exc.value)
|
|
assert message == PDF_VIEWER_PYMUPDF_MISSING
|
|
assert "requirements-optional.txt" in message
|
|
assert "PyMuPDF" in message
|