45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
# Copyright (c) Jupyter Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
"""Test Widget."""
|
|
|
|
from IPython.core.interactiveshell import InteractiveShell
|
|
from IPython.display import display
|
|
from IPython.utils.capture import capture_output
|
|
|
|
from ..widget import Widget
|
|
from ..widget_button import Button
|
|
|
|
|
|
def test_no_widget_view():
|
|
# ensure IPython shell is instantiated
|
|
# otherwise display() just calls print
|
|
shell = InteractiveShell.instance()
|
|
|
|
with capture_output() as cap:
|
|
w = Widget()
|
|
display(w)
|
|
|
|
assert len(cap.outputs) == 1, "expect 1 output"
|
|
mime_bundle = cap.outputs[0].data
|
|
assert mime_bundle['text/plain'] == repr(w), "expected plain text output"
|
|
assert 'application/vnd.jupyter.widget-view+json' not in mime_bundle, "widget has no view"
|
|
assert cap.stdout == '', repr(cap.stdout)
|
|
assert cap.stderr == '', repr(cap.stderr)
|
|
|
|
|
|
def test_widget_view():
|
|
# ensure IPython shell is instantiated
|
|
# otherwise display() just calls print
|
|
shell = InteractiveShell.instance()
|
|
|
|
with capture_output() as cap:
|
|
w = Button()
|
|
display(w)
|
|
|
|
assert len(cap.outputs) == 1, "expect 1 output"
|
|
mime_bundle = cap.outputs[0].data
|
|
assert mime_bundle['text/plain'] == repr(w), "expected plain text output"
|
|
assert 'application/vnd.jupyter.widget-view+json' in mime_bundle, "widget should have have a view"
|
|
assert cap.stdout == '', repr(cap.stdout)
|
|
assert cap.stderr == '', repr(cap.stderr)
|