50 lines
1.8 KiB
Python
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')
|