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 == 'A' select.options = {} assert select.value == None assert widget.value == None
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 == 'A' opts.pop('A') select.options = opts assert select.value is opts['1'] assert widget.value == '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 == 'D' assert model.options == ['D', 'E']
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 == '1' assert widget.options == ['A', '1'] select._comm_change({'value': 'A'}) assert select.value == opts['A'] widget.value = '1' select._comm_change({'value': '1'}) assert select.value == opts['1'] select.value = opts['A'] assert widget.value == 'A'
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 == 'B' assert widget.options == ['A', 'B', 'C'] widget.value = 'B' select._comm_change({'value': 'A'}) assert select.value == opts['A'] widget.value = 'B' select._comm_change({'value': 'B'}) assert select.value == opts['B'] select.value = opts['A'] assert widget.value == 'A'