73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
"""Tests for ScriptExporter"""
|
|
|
|
# Copyright (c) IPython Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
import os
|
|
import sys
|
|
|
|
from nbformat import v4
|
|
import nbconvert
|
|
|
|
from .base import ExportersTestsBase
|
|
from ..script import ScriptExporter
|
|
|
|
|
|
class TestScriptExporter(ExportersTestsBase):
|
|
"""Tests for ScriptExporter"""
|
|
|
|
exporter_class = ScriptExporter
|
|
|
|
def test_constructor(self):
|
|
"""Construct ScriptExporter"""
|
|
e = self.exporter_class()
|
|
|
|
def test_export(self):
|
|
"""ScriptExporter can export something"""
|
|
(output, resources) = self.exporter_class().from_filename(self._get_notebook())
|
|
assert len(output) > 0
|
|
|
|
def test_export_python(self):
|
|
"""delegate to custom exporter from language_info"""
|
|
exporter = self.exporter_class()
|
|
|
|
pynb = v4.new_notebook()
|
|
(output, resources) = self.exporter_class().from_notebook_node(pynb)
|
|
self.assertNotIn('# coding: utf-8', output)
|
|
|
|
pynb.metadata.language_info = {
|
|
'name': 'python',
|
|
'mimetype': 'text/x-python',
|
|
'nbconvert_exporter': 'python',
|
|
}
|
|
(output, resources) = self.exporter_class().from_notebook_node(pynb)
|
|
self.assertIn('# coding: utf-8', output)
|
|
|
|
def test_export_config_transfer(self):
|
|
"""delegate config to custom exporter from language_info"""
|
|
nb = v4.new_notebook()
|
|
nb.metadata.language_info = {
|
|
'name': 'python',
|
|
'mimetype': 'text/x-python',
|
|
'nbconvert_exporter': 'python',
|
|
}
|
|
|
|
exporter = self.exporter_class()
|
|
exporter.from_notebook_node(nb)
|
|
assert exporter._exporters['python'] != exporter
|
|
assert exporter._exporters['python'].config == exporter.config
|
|
|
|
def test_script_exporter_entrypoint():
|
|
nb = v4.new_notebook()
|
|
nb.metadata.language_info = {
|
|
'name': 'dummy',
|
|
'mimetype': 'text/x-dummy',
|
|
}
|
|
|
|
p = os.path.join(os.path.dirname(nbconvert.tests.__file__), 'exporter_entrypoint')
|
|
sys.path.insert(0, p)
|
|
try:
|
|
output, _ = ScriptExporter().from_notebook_node(nb)
|
|
assert output == 'dummy-script-exported'
|
|
finally:
|
|
sys.path.remove(p)
|