def test_select_disabled_options_init(options, size, document, comm): select = Select(options=options, disabled_options=[20], size=size) widget = select.get_root(document, comm=comm) assert isinstance(widget, select._widget_type) assert widget.disabled_options == [20]
def test_select_disabled_options_set_value_and_disabled_options( options, size, document, comm): select = Select(options=options, disabled_options=[20], size=size) select.param.set_param(value=20, disabled_options=[10]) widget = select.get_root(document, comm=comm) assert widget.value == '20' assert select.value == 20 assert widget.disabled_options == [10]
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 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 test_select_change_groups(document, comm): groups = dict(A=dict(a=1, b=2), B=dict(c=3)) select = Select(value=groups['A']['a'], groups=groups, name='Select') widget = select.get_root(document, comm=comm) new_groups = dict(C=dict(d=4), D=dict(e=5, f=6)) select.groups = new_groups assert select.value == new_groups['C']['d'] assert widget.value == str(new_groups['C']['d']) assert widget.options == {'C': [('4', 'd')], 'D': [('5', 'e'), ('6', 'f')]} select.groups = {} assert select.value == None assert widget.value == ''
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_groups_dict_options(document, comm): groups = dict(A=dict(a=1, b=2), B=dict(c=3)) select = Select(value=groups['A']['a'], groups=groups, name='Select') widget = select.get_root(document, comm=comm) assert isinstance(widget, select._widget_type) assert widget.title == 'Select' assert widget.value == str(groups['A']['a']) assert widget.options == {'A': [('1', 'a'), ('2', 'b')], 'B': [('3', 'c')]} select._process_events({'value': str(groups['B']['c'])}) assert select.value == groups['B']['c'] select._process_events({'value': str(groups['A']['b'])}) assert select.value == groups['A']['b'] select.value = groups['A']['a'] assert widget.value == str(groups['A']['a'])
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(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 == 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'])
def test_select_groups_list_options(document, comm): groups = dict(a=[1, 2], b=[3]) select = Select(value=groups['a'][0], groups=groups, name='Select') widget = select.get_root(document, comm=comm) assert isinstance(widget, select._widget_type) assert widget.title == 'Select' assert widget.value == str(groups['a'][0]) assert widget.options == { gr: [(str(v), str(v)) for v in values] for gr, values in groups.items() } select._process_events({'value': str(groups['a'][1])}) assert select.value == groups['a'][1] select._process_events({'value': str(groups['a'][0])}) assert select.value == groups['a'][0] select.value = groups['a'][1] assert widget.value == str(groups['a'][1])
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'