hub/venv/lib/python3.7/site-packages/ipywidgets/widgets/tests/utils.py

48 lines
1.2 KiB
Python

# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
from ipykernel.comm import Comm
from ipywidgets import Widget
class DummyComm(Comm):
comm_id = 'a-b-c-d'
kernel = 'Truthy'
def __init__(self, *args, **kwargs):
super(DummyComm, self).__init__(*args, **kwargs)
self.messages = []
def open(self, *args, **kwargs):
pass
def send(self, *args, **kwargs):
self.messages.append((args, kwargs))
def close(self, *args, **kwargs):
pass
_widget_attrs = {}
undefined = object()
def setup_test_comm():
_widget_attrs['_comm_default'] = getattr(Widget, '_comm_default', undefined)
Widget._comm_default = lambda self: DummyComm()
_widget_attrs['_ipython_display_'] = Widget._ipython_display_
def raise_not_implemented(*args, **kwargs):
raise NotImplementedError()
Widget._ipython_display_ = raise_not_implemented
def teardown_test_comm():
for attr, value in _widget_attrs.items():
if value is undefined:
delattr(Widget, attr)
else:
setattr(Widget, attr, value)
_widget_attrs.clear()
def setup():
setup_test_comm()
def teardown():
teardown_test_comm()