mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-04-22 10:28:02 +00:00
83 lines
2.9 KiB
Python
83 lines
2.9 KiB
Python
"""Tests for SlidesExporter"""
|
|
|
|
# Copyright (c) IPython Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
from nbformat import v4 as nbformat
|
|
|
|
from ..slides import SlidesExporter, _RevealMetadataPreprocessor
|
|
from .base import ExportersTestsBase
|
|
|
|
|
|
class TestSlidesExporter(ExportersTestsBase):
|
|
"""Tests for SlidesExporter"""
|
|
|
|
exporter_class = SlidesExporter
|
|
should_include_raw = ["html"]
|
|
|
|
def test_constructor(self):
|
|
"""
|
|
Can a SlidesExporter be constructed?
|
|
"""
|
|
SlidesExporter()
|
|
|
|
def test_export(self):
|
|
"""
|
|
Can a SlidesExporter export something?
|
|
"""
|
|
(output, resources) = SlidesExporter().from_filename(self._get_notebook())
|
|
assert len(output) > 0
|
|
|
|
def test_export_reveal(self):
|
|
"""
|
|
Can a SlidesExporter export using the 'reveal' template?
|
|
"""
|
|
(output, resources) = SlidesExporter().from_filename(self._get_notebook())
|
|
assert len(output) > 0
|
|
|
|
def build_notebook(self):
|
|
"""Build a reveal slides notebook in memory for use with tests."""
|
|
outputs = [nbformat.new_output(output_type="stream", name="stdout", text="a")]
|
|
|
|
slide_metadata = {"slideshow": {"slide_type": "slide"}}
|
|
subslide_metadata = {"slideshow": {"slide_type": "subslide"}}
|
|
fragment_metadata = {"slideshow": {"slide_type": "fragment"}}
|
|
|
|
cells = [
|
|
nbformat.new_code_cell(source="", execution_count=1, outputs=outputs),
|
|
nbformat.new_markdown_cell(source="", metadata=slide_metadata),
|
|
nbformat.new_code_cell(source="", execution_count=2, outputs=outputs),
|
|
nbformat.new_markdown_cell(source="", metadata=slide_metadata),
|
|
nbformat.new_markdown_cell(source="", metadata=subslide_metadata),
|
|
nbformat.new_markdown_cell(source="", metadata=fragment_metadata),
|
|
nbformat.new_code_cell(source="", execution_count=1, outputs=outputs),
|
|
]
|
|
|
|
return nbformat.new_notebook(cells=cells)
|
|
|
|
def test_metadata_preprocessor(self):
|
|
preprocessor = _RevealMetadataPreprocessor()
|
|
nb = self.build_notebook()
|
|
nb, resources = preprocessor.preprocess(nb)
|
|
cells = nb.cells
|
|
|
|
# Make sure correct metadata tags are available on every cell.
|
|
for cell in cells:
|
|
assert "slide_type" in cell.metadata
|
|
|
|
# Make sure slide end is only applied to the cells preceeding slide
|
|
# cells.
|
|
assert not cells[1].metadata.get("slide_end", False)
|
|
|
|
# Verify 'slide-end'
|
|
assert cells[0].metadata["slide_end"]
|
|
assert cells[2].metadata["slide_end"]
|
|
assert cells[2].metadata["subslide_end"]
|
|
|
|
assert not cells[3].metadata.get("slide_end", False)
|
|
assert cells[3].metadata["subslide_end"]
|
|
|
|
assert cells[-1].metadata["fragment_end"]
|
|
assert cells[-1].metadata["subslide_end"]
|
|
assert cells[-1].metadata["slide_end"]
|