2022-05-23 00:16:32 +04:00

76 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 ..script import ScriptExporter
from .base import ExportersTestsBase
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)