123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- from nicegui import ui
- from nicegui.testing import Screen
- def test_adding_toggle_options(screen: Screen):
- label = ui.label()
- toggle = ui.toggle(['A', 'B', 'C'], on_change=lambda e: label.set_text(f'Choice: {e.value}'))
- def add_option():
- toggle.options.append('D')
- toggle.update()
- ui.button('Add option', on_click=add_option)
- screen.open('/')
- screen.click('A')
- screen.should_contain('Choice: A')
- screen.should_not_contain('D')
- screen.click('Add option')
- screen.should_contain('D')
- screen.click('D')
- screen.should_contain('Choice: D')
- def test_changing_options(screen: Screen):
- t = ui.toggle([10, 20, 30], value=10)
- ui.label().bind_text_from(t, 'value', lambda v: f'value = {v}')
- ui.button('reverse', on_click=lambda: (t.options.reverse(), t.update()))
- ui.button('clear', on_click=lambda: (t.options.clear(), t.update()))
- screen.open('/')
- screen.click('reverse')
- screen.should_contain('value = 10')
- screen.click('clear')
- screen.should_contain('value = None')
- def test_clearable_toggle(screen: Screen):
- t = ui.toggle(['A', 'B', 'C'], clearable=True)
- ui.label().bind_text_from(t, 'value', lambda v: f'value = {v}')
- screen.open('/')
- screen.click('A')
- screen.should_contain('value = A')
- screen.click('A')
- screen.should_contain('value = None')
|