From e9c0f556900f1b8021350c27464b7a1c93975270 Mon Sep 17 00:00:00 2001 From: Vinayak Mehta Date: Mon, 5 Jul 2021 05:12:43 +0530 Subject: [PATCH] Test image_conversion.py --- tests/test_image_conversion_backend.py | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/tests/test_image_conversion_backend.py b/tests/test_image_conversion_backend.py index e69de29..8074cac 100644 --- a/tests/test_image_conversion_backend.py +++ b/tests/test_image_conversion_backend.py @@ -0,0 +1,49 @@ +# -*- 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')