def test_multi_select_change_options(document, comm): select = MultiSelect(options=OrderedDict([('A', 'A'), ('1', 1), ('C', object)]), value=[object, 1], 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 == [] assert model.options == ['D', 'E']
def test_multi_select(document, comm): select = MultiSelect(options=OrderedDict([('A', 'A'), ('1', 1), ('C', object)]), value=[object, 1], name='Select') widget = select.get_root(document, comm=comm) assert isinstance(widget, select._widget_type) assert widget.title == 'Select' assert widget.value == ['C', '1'] assert widget.options == ['A', '1', 'C'] widget.value = ['1'] select._comm_change({'value': ['1']}) assert select.value == [1] widget.value = ['A', 'C'] select._comm_change({'value': ['A', 'C']}) assert select.value == ['A', object] select.value = [object, 'A'] assert widget.value == ['C', 'A']