123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- # Copyright (c) Jupyter Development Team.
- # Distributed under the terms of the Modified BSD License.
- import inspect
- import warnings
- from unittest import TestCase
- from traitlets import TraitError
- from ipywidgets import Dropdown, SelectionSlider, Select
- class TestDropdown(TestCase):
- def test_construction(self):
- Dropdown()
- def test_deprecation_warning_mapping_options(self):
- with warnings.catch_warnings(record=True) as w:
- warnings.simplefilter("always")
- # Clearing the internal __warningregistry__ seems to be required for
- # Python 2 (but not for Python 3)
- module = inspect.getmodule(Dropdown)
- getattr(module, '__warningregistry__', {}).clear()
- Dropdown(options={'One': 1, 'Two': 2, 'Three': 3})
- assert len(w) > 0
- assert issubclass(w[-1].category, DeprecationWarning)
- assert "Support for mapping types has been deprecated" in str(w[-1].message)
- class TestSelectionSlider(TestCase):
- def test_construction(self):
- SelectionSlider(options=['a', 'b', 'c'])
- def test_index_trigger(self):
- slider = SelectionSlider(options=['a', 'b', 'c'])
- observations = []
- def f(change):
- observations.append(change.new)
- slider.observe(f, 'index')
- assert slider.index == 0
- slider.options = [4, 5, 6]
- assert slider.index == 0
- assert slider.value == 4
- assert slider.label == '4'
- assert observations == [0]
- class TestSelection(TestCase):
- def test_construction(self):
- select = Select(options=['a', 'b', 'c'])
- def test_index_trigger(self):
- select = Select(options=[1, 2, 3])
- observations = []
- def f(change):
- observations.append(change.new)
- select.observe(f, 'index')
- assert select.index == 0
- select.options = [4, 5, 6]
- assert select.index == 0
- assert select.value == 4
- assert select.label == '4'
- assert observations == [0]
- def test_duplicate(self):
- select = Select(options=['first', 1, 'dup', 'dup'])
- observations = []
- def f(change):
- observations.append(change.new)
- select.observe(f, 'index')
- select.index = 3
- assert select.index == 3
- assert select.value == 'dup'
- assert select.label == 'dup'
- assert observations == [3]
- select.index = 2
- assert select.index == 2
- assert select.value == 'dup'
- assert select.label == 'dup'
- assert observations == [3, 2]
- select.index = 0
- assert select.index == 0
- assert select.value == 'first'
- assert select.label == 'first'
- assert observations == [3, 2, 0]
- # picks the first matching value
- select.value = 'dup'
- assert select.index == 2
- assert select.value == 'dup'
- assert select.label == 'dup'
- assert observations == [3, 2, 0, 2]
|