|
|
"""
|
|
|
Module with tests for export.py
|
|
|
"""
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Copyright (c) 2013, the IPython Development Team.
|
|
|
#
|
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
#
|
|
|
# The full license is in the file COPYING.txt, distributed with this software.
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Imports
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
import os
|
|
|
|
|
|
from IPython.nbformat import current as nbformat
|
|
|
|
|
|
from .base import ExportersTestsBase
|
|
|
from ..export import *
|
|
|
from ..python import PythonExporter
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
|
# Class
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
class TestExport(ExportersTestsBase):
|
|
|
"""Contains test functions for export.py"""
|
|
|
|
|
|
|
|
|
def test_export_wrong_name(self):
|
|
|
"""
|
|
|
Is the right error thrown when a bad template name is used?
|
|
|
"""
|
|
|
try:
|
|
|
export_by_name('not_a_name', self._get_notebook())
|
|
|
except ExporterNameError as e:
|
|
|
pass
|
|
|
|
|
|
|
|
|
def test_export_filename(self):
|
|
|
"""
|
|
|
Can a notebook be exported by filename?
|
|
|
"""
|
|
|
(output, resources) = export_by_name('python', self._get_notebook())
|
|
|
assert len(output) > 0
|
|
|
|
|
|
|
|
|
def test_export_nbnode(self):
|
|
|
"""
|
|
|
Can a notebook be exported by a notebook node handle?
|
|
|
"""
|
|
|
with open(self._get_notebook(), 'r') as f:
|
|
|
notebook = nbformat.read(f, 'json')
|
|
|
(output, resources) = export_by_name('python', notebook)
|
|
|
assert len(output) > 0
|
|
|
|
|
|
|
|
|
def test_export_filestream(self):
|
|
|
"""
|
|
|
Can a notebook be exported by a filesteam?
|
|
|
"""
|
|
|
with open(self._get_notebook(), 'r') as f:
|
|
|
(output, resources) = export_by_name('python', f)
|
|
|
assert len(output) > 0
|
|
|
|
|
|
|
|
|
def test_export_using_exporter(self):
|
|
|
"""
|
|
|
Can a notebook be exported using an instanciated exporter?
|
|
|
"""
|
|
|
(output, resources) = export(PythonExporter(), self._get_notebook())
|
|
|
assert len(output) > 0
|
|
|
|
|
|
|
|
|
def test_export_using_exporter_class(self):
|
|
|
"""
|
|
|
Can a notebook be exported using an exporter class type?
|
|
|
"""
|
|
|
(output, resources) = export(PythonExporter, self._get_notebook())
|
|
|
assert len(output) > 0
|
|
|
|
|
|
|
|
|
def test_export_resources(self):
|
|
|
"""
|
|
|
Can a notebook be exported along with a custom resources dict?
|
|
|
"""
|
|
|
(output, resources) = export(PythonExporter, self._get_notebook(), resources={})
|
|
|
assert len(output) > 0
|
|
|
|
|
|
|
|
|
def test_no_exporter(self):
|
|
|
"""
|
|
|
Is the right error thrown if no exporter is provided?
|
|
|
"""
|
|
|
try:
|
|
|
(output, resources) = export(None, self._get_notebook())
|
|
|
except TypeError:
|
|
|
pass
|
|
|
|
|
|
|