Vehicle-Anti-Theft-Face-Rec.../venv/Lib/site-packages/nbconvert/exporters/tests/test_rst.py

74 lines
2.1 KiB
Python
Raw Normal View History

2020-11-12 16:05:57 +00:00
"""Tests for RSTExporter"""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
import io
import pytest
import re
import nbformat
from nbformat import v4
from .base import ExportersTestsBase
from ..rst import RSTExporter
from ...tests.utils import onlyif_cmds_exist
class TestRSTExporter(ExportersTestsBase):
"""Tests for RSTExporter"""
exporter_class = RSTExporter
should_include_raw = ['rst']
def test_constructor(self):
"""
Can a RSTExporter be constructed?
"""
RSTExporter()
@onlyif_cmds_exist('pandoc')
def test_export(self):
"""
Can a RSTExporter export something?
"""
(output, resources) = RSTExporter().from_filename(self._get_notebook())
assert len(output) > 0
@onlyif_cmds_exist('pandoc')
def test_empty_code_cell(self):
"""No empty code cells in rst"""
nbname = self._get_notebook()
with io.open(nbname, encoding='utf8') as f:
nb = nbformat.read(f, 4)
exporter = self.exporter_class()
(output, resources) = exporter.from_notebook_node(nb)
# add an empty code cell
nb.cells.append(
v4.new_code_cell(source="")
)
(output2, resources) = exporter.from_notebook_node(nb)
# adding an empty code cell shouldn't change output
self.assertEqual(output.strip(), output2.strip())
@onlyif_cmds_exist('pandoc')
def test_png_metadata(self):
"""
Does RSTExporter treat pngs with width/height metadata correctly?
"""
(output, resources) = RSTExporter().from_filename(
self._get_notebook(nb_name="pngmetadata.ipynb"))
assert len(output) > 0
check_for_png = re.compile(
r'.. image::.*?\n\s+(.*?)\n\s*\n',
re.DOTALL)
result = check_for_png.search(output)
assert result is not None
attr_string = result.group(1)
assert ':width:' in attr_string
assert ':height:' in attr_string
assert 'px' in attr_string