def test_customjs_callback_attributes_js_for_cb_data(self): js_code = Callback.attributes_js({'x0': 'cb_data.geometry.x0', 'x1': 'cb_data.geometry.x1', 'y0': 'cb_data.geometry.y0', 'y1': 'cb_data.geometry.y1'}) code = ('data["x0"] = cb_data["geometry"]["x0"];\n' 'data["x1"] = cb_data["geometry"]["x1"];\n' 'data["y0"] = cb_data["geometry"]["y0"];\n' 'data["y1"] = cb_data["geometry"]["y1"];\n') self.assertEqual(js_code, code)
def test_customjs_callback_attributes_js_for_model(self): js_code = Callback.attributes_js({'x0': 'x_range.attributes.start', 'x1': 'x_range.attributes.end'}) code = ( 'if ((x_range != undefined)) { data["x0"] = {id: x_range["id"], value: ' 'x_range["attributes"]["start"]};\n }' 'if ((x_range != undefined)) { data["x1"] = {id: x_range["id"], value: ' 'x_range["attributes"]["end"]};\n }' ) self.assertEqual(js_code, code)
def test_customjs_callback_attributes_js_for_cb_obj(self): js_code = Callback.attributes_js({'x': 'cb_obj.x', 'y': 'cb_obj.y'}) code = 'data["x"] = cb_obj["x"];\ndata["y"] = cb_obj["y"];\n' self.assertEqual(js_code, code)
def test_server_callback_resolve_attr_spec_tap_event(self): plot = Plot() event = Tap(plot, x=42) msg = Callback.resolve_attr_spec('cb_obj.x', event, plot) self.assertEqual(msg, {'id': plot.ref['id'], 'value': 42})
def test_server_callback_resolve_attr_spec_source_selected(self): source = ColumnDataSource() source.selected = Selection(indices=[1, 2, 3]) msg = Callback.resolve_attr_spec('cb_obj.selected.indices', source) self.assertEqual(msg, {'id': source.ref['id'], 'value': [1, 2, 3]})
def test_server_callback_resolve_attr_spec_range1d_end(self): range1d = Range1d(start=0, end=10) msg = Callback.resolve_attr_spec('x_range.attributes.end', range1d) self.assertEqual(msg, {'id': range1d.ref['id'], 'value': 10})
def test_server_callback_resolve_attr_spec_source_selected(self): source = ColumnDataSource() source.selected['1d']['indices'] = [1, 2, 3] msg = Callback.resolve_attr_spec('cb_obj.selected.1d.indices', source) self.assertEqual(msg, {'id': source.ref['id'], 'value': [1, 2, 3]})