55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
"""utility functions for preprocessor tests"""
|
|
|
|
# Copyright (c) IPython Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
from nbformat import v4 as nbformat
|
|
|
|
from ...tests.base import TestsBase
|
|
from ...exporters.exporter import ResourcesDict
|
|
|
|
|
|
class PreprocessorTestsBase(TestsBase):
|
|
"""Contains test functions preprocessor tests"""
|
|
|
|
|
|
def build_notebook(self, with_json_outputs=False):
|
|
"""Build a notebook in memory for use with preprocessor tests"""
|
|
|
|
outputs = [
|
|
nbformat.new_output("stream", name="stdout", text="a"),
|
|
nbformat.new_output("display_data", data={'text/plain': 'b'}),
|
|
nbformat.new_output("stream", name="stdout", text="c"),
|
|
nbformat.new_output("stream", name="stdout", text="d"),
|
|
nbformat.new_output("stream", name="stderr", text="e"),
|
|
nbformat.new_output("stream", name="stderr", text="f"),
|
|
nbformat.new_output("display_data", data={'image/png': 'Zw=='}), # g
|
|
nbformat.new_output("display_data", data={'application/pdf': 'aA=='}), # h
|
|
]
|
|
if with_json_outputs:
|
|
outputs.extend([
|
|
nbformat.new_output(
|
|
"display_data", data={'application/json': [1, 2, 3]}
|
|
), # j
|
|
nbformat.new_output(
|
|
"display_data", data={'application/json': {'a': 1, 'c': {'b': 2}}}
|
|
), # k
|
|
nbformat.new_output(
|
|
"display_data", data={'application/json': 'abc'}
|
|
), # l
|
|
nbformat.new_output(
|
|
"display_data", data={'application/json': 15.03}
|
|
), # m
|
|
])
|
|
|
|
cells=[nbformat.new_code_cell(source="$ e $", execution_count=1, outputs=outputs),
|
|
nbformat.new_markdown_cell(source="$ e $")]
|
|
|
|
return nbformat.new_notebook(cells=cells)
|
|
|
|
def build_resources(self):
|
|
"""Build an empty resources dictionary."""
|
|
|
|
res = ResourcesDict()
|
|
res['metadata'] = ResourcesDict()
|
|
return res
|