from unittest import SkipTest from holoviews.core.options import Store from holoviews.core.spaces import DynamicMap from holoviews.element import Table from holoviews.element.comparison import ComparisonTestCase from holoviews.streams import CDSStream try: from bokeh.models.widgets import ( NumberEditor, NumberFormatter, DateFormatter, DateEditor, StringFormatter, StringEditor, IntEditor ) from holoviews.plotting.bokeh.callbacks import CDSCallback from holoviews.plotting.bokeh.renderer import BokehRenderer bokeh_renderer = BokehRenderer.instance(mode='server') except: bokeh_renderer = None class TestBokehTablePlot(ComparisonTestCase): def setUp(self): self.previous_backend = Store.current_backend if not bokeh_renderer: raise SkipTest("Bokeh required to test plot instantiation") Store.current_backend = 'bokeh' def tearDown(self): Store.current_backend = self.previous_backend bokeh_renderer.last_plot = None
from holoviews.element import Points, Polygons, Box, Curve, Table from holoviews.element.comparison import ComparisonTestCase from holoviews.streams import (PointDraw, PolyDraw, PolyEdit, BoxEdit, PointerXY, PointerX, PlotReset, Selection1D, RangeXY, PlotSize, CDSStream, SingleTap) import pyviz_comms as comms try: from bokeh.events import Tap from bokeh.models import Range1d, Plot, ColumnDataSource, Selection, PolyEditTool from holoviews.plotting.bokeh.callbacks import ( Callback, PointDrawCallback, PolyDrawCallback, PolyEditCallback, BoxEditCallback, Selection1DCallback, PointerXCallback, TapCallback ) from holoviews.plotting.bokeh.renderer import BokehRenderer bokeh_server_renderer = BokehRenderer.instance(mode='server') bokeh_renderer = BokehRenderer.instance() except: bokeh_renderer = None bokeh_server_renderer = None class CallbackTestCase(ComparisonTestCase): def setUp(self): self.previous_backend = Store.current_backend Store.current_backend = 'bokeh' self.comm_manager = bokeh_renderer.comm_manager bokeh_renderer.comm_manager = comms.CommManager def tearDown(self):
from unittest import SkipTest import numpy as np from holoviews.element import Curve, Polygons, Table from holoviews.element.comparison import ComparisonTestCase from holoviews.plotting.links import (RangeToolLink, DataLink) try: from holoviews.plotting.bokeh.renderer import BokehRenderer from holoviews.plotting.bokeh.util import bokeh_version from bokeh.models import ColumnDataSource bokeh_renderer = BokehRenderer.instance() except: bokeh_renderer = None class TestLinkCallbacks(ComparisonTestCase): def test_range_tool_link_callback_single_axis(self): if bokeh_version < '0.13': raise SkipTest('RangeTool requires bokeh version >= 0.13') from bokeh.models import RangeTool array = np.random.rand(100, 2) src = Curve(array) target = Curve(array) RangeToolLink(src, target) layout = target + src plot = bokeh_renderer.get_plot(layout) tgt_plot = plot.subplots[(0, 0)].subplots['main'] src_plot = plot.subplots[(0, 1)].subplots['main'] range_tool = src_plot.state.select_one({'type': RangeTool})