camelot-py/tests/test_image_conversion_backe...

50 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
import pytest
import camelot.backends.image_conversion
from camelot.backends import ImageConversionBackend
from camelot.backends.poppler_backend import PopplerBackend
from camelot.backends.ghostscript_backend import GhostscriptBackend
class PopplerBackendError(object):
def convert(self, pdf_path, png_path):
raise ValueError('conversion failed')
class GhostscriptBackendError(object):
def convert(self, pdf_path, png_path):
raise ValueError('conversion failed')
class GhostscriptBackendNoError(object):
def convert(self, pdf_path, png_path):
pass
def test_poppler_backend_error_when_no_use_fallback(monkeypatch):
backends = {"poppler": PopplerBackendError, "ghostscript": GhostscriptBackendNoError}
monkeypatch.setattr("camelot.backends.image_conversion.backends", backends, raising=True)
backend = ImageConversionBackend(use_fallback=False)
message = "conversion failed with image conversion backend 'poppler'"
with pytest.raises(ValueError, match=message):
backend.convert('foo', 'bar')
def test_ghostscript_backend_when_use_fallback(monkeypatch):
backends = {"poppler": PopplerBackendError, "ghostscript": GhostscriptBackendNoError}
monkeypatch.setattr("camelot.backends.image_conversion.backends", backends, raising=True)
backend = ImageConversionBackend()
backend.convert('foo', 'bar')
def test_ghostscript_backend_error_when_use_fallback(monkeypatch):
backends = {"poppler": PopplerBackendError, "ghostscript": GhostscriptBackendError}
monkeypatch.setattr("camelot.backends.image_conversion.backends", backends, raising=True)
backend = ImageConversionBackend()
message = "conversion failed with image conversion backend 'ghostscript'"
with pytest.raises(ValueError, match=message):
backend.convert('foo', 'bar')