def test_select_non_hashable_options(document, comm): opts = {'A': np.array([1, 2, 3]), '1': np.array([3, 4, 5])} select = Select(options=opts, value=opts['1'], name='Select') widget = select.get_root(document, comm=comm) select.value = opts['A'] assert select.value is opts['A'] assert widget.value == as_unicode(opts['A']) opts.pop('A') select.options = opts assert select.value is opts['1'] assert widget.value == as_unicode(opts['1'])
def test_select_change_options_on_watch(document, comm): select = Select(options=OrderedDict([('A', 'A'), ('1', 1), ('C', object)]), value='A', name='Select') def set_options(event): if event.new == 1: select.options = OrderedDict([('D', 2), ('E', 'a')]) select.param.watch(set_options, 'value') model = select.get_root(document, comm=comm) select.value = 1 assert model.value == as_unicode(list(select.options.values())[0]) assert model.options == [(as_unicode(v),k) for k,v in select.options.items()]
def _process_param_change(self, msg): msg = super(EventDivWidgetBase, self)._process_property_change(msg) if 'value' in msg: text = as_unicode(msg.pop('value')) partial = self._format.replace('{value}', '') if self.name: text = self._format.format(value=text.replace(partial, '')) msg['text'] = text return msg
def test_select(document, comm): opts = {'A': 'a', '1': 1} select = Select(options=opts, value=opts['1'], name='Select') widget = select.get_root(document, comm=comm) assert isinstance(widget, select._widget_type) assert widget.title == 'Select' assert widget.value == as_unicode(opts['1']) assert widget.options == [(as_unicode(v), k) for k, v in opts.items()] select._process_events({'value': as_unicode(opts['A'])}) assert select.value == opts['A'] widget.value = as_unicode(opts['1']) select.value = opts['1'] assert select.value == opts['1'] select.value = opts['A'] assert widget.value == as_unicode(opts['A'])
def test_select_change_options(document, comm): opts = {'A': 'a', '1': 1} select = Select(options=opts, value=opts['1'], name='Select') widget = select.get_root(document, comm=comm) select.options = {'A': 'a'} assert select.value == opts['A'] assert widget.value == as_unicode(opts['A']) select.options = {} assert select.value == None assert widget.value == ''
def _process_param_change(self, msg): msg = super(NumericInput, self)._process_param_change(msg) if "start" in msg: start = msg.pop("start") self.param.value.bounds[0] = start if "end" in msg: end = msg.pop("end") self.param.value.bounds[1] = end if "value" in msg: value = "" if msg["value"] is None else msg["value"] value = as_unicode(value) msg["value"] = value msg["title"] = self.name return msg
def _process_param_change(self, msg): msg = super(NumericInput, self)._process_param_change(msg) if 'start' in msg: start = msg.pop('start') self.param.value.bounds[0] = start if 'end' in msg: end = msg.pop('end') self.param.value.bounds[1] = end if 'value' in msg: value = '' if msg['value'] is None else msg['value'] value = as_unicode(value) msg['value'] = value msg['title'] = self.name return msg
def test_select_mutables(document, comm): opts = OrderedDict([('A', [1,2,3]), ('B', [2,4,6]), ('C', dict(a=1,b=2))]) select = Select(options=opts, value=opts['B'], name='Select') widget = select.get_root(document, comm=comm) assert isinstance(widget, select._widget_type) assert widget.title == 'Select' assert widget.value == as_unicode(opts['B']) assert widget.options == [(as_unicode(v),k) for k,v in opts.items()] widget.value = as_unicode(opts['B']) select._comm_change({'value': as_unicode(opts['A'])}) assert select.value == opts['A'] widget.value = as_unicode(opts['B']) select._comm_change({'value': as_unicode(opts['B'])}) assert select.value == opts['B'] select.value = opts['A'] assert widget.value == as_unicode(opts['A'])