44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
"""Tests for the latex preprocessor"""
|
|
|
|
# Copyright (c) IPython Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
import io
|
|
import pytest
|
|
|
|
from unittest.mock import patch
|
|
|
|
from .base import ExportersTestsBase
|
|
from ..webpdf import WebPDFExporter
|
|
|
|
class TestWebPDFExporter(ExportersTestsBase):
|
|
"""Contains test functions for webpdf.py"""
|
|
|
|
exporter_class = WebPDFExporter
|
|
|
|
def test_export(self):
|
|
"""
|
|
Can a TemplateExporter export something?
|
|
"""
|
|
(output, resources) = WebPDFExporter(allow_chromium_download=True).from_filename(self._get_notebook())
|
|
assert len(output) > 0
|
|
|
|
@patch('pyppeteer.util.check_chromium', return_value=False)
|
|
def test_webpdf_without_chromium(self, mock_check_chromium):
|
|
"""
|
|
Generate PDFs if chromium not present?
|
|
"""
|
|
with pytest.raises(RuntimeError):
|
|
WebPDFExporter(allow_chromium_download=False).from_filename(self._get_notebook())
|
|
|
|
def test_webpdf_without_pyppeteer(self):
|
|
"""
|
|
Generate PDFs if chromium not present?
|
|
"""
|
|
with pytest.raises(RuntimeError):
|
|
exporter = WebPDFExporter()
|
|
with io.open(self._get_notebook(), encoding='utf-8') as f:
|
|
nb = exporter.from_file(f, resources={})
|
|
# Have to do this as the very last action as traitlets do dynamic importing often
|
|
with patch('builtins.__import__', side_effect=ModuleNotFoundError("Fake missing")):
|
|
exporter.from_notebook_node(nb)
|