|
@@ -1,18 +1,15 @@
|
|
|
|
|
|
-import pytest
|
|
|
from nicegui import ui
|
|
|
-from selenium.webdriver.common.action_chains import ActionChains
|
|
|
-from selenium.webdriver.common.by import By
|
|
|
|
|
|
from .screen import Screen
|
|
|
|
|
|
|
|
|
-def test_binding_ui_select_with_tuple_as_key(screen: Screen):
|
|
|
+def test_ui_select_with_tuple_as_key(screen: Screen):
|
|
|
class Model():
|
|
|
selection = None
|
|
|
data = Model()
|
|
|
options = {
|
|
|
- (1, 1): 'option A',
|
|
|
+ (2, 1): 'option A',
|
|
|
(1, 2): 'option B',
|
|
|
}
|
|
|
data.selection = list(options.keys())[0]
|
|
@@ -24,3 +21,41 @@ def test_binding_ui_select_with_tuple_as_key(screen: Screen):
|
|
|
screen.click_at_position(element, x=20, y=100)
|
|
|
screen.wait(0.3)
|
|
|
screen.should_contain('option B')
|
|
|
+ screen.should_not_contain('option A')
|
|
|
+ assert data.selection == (1, 2)
|
|
|
+
|
|
|
+
|
|
|
+def test_ui_select_with_list_of_tuples(screen: Screen):
|
|
|
+ class Model():
|
|
|
+ selection = None
|
|
|
+ data = Model()
|
|
|
+ options = [(1, 1), (2, 2), (3, 3)]
|
|
|
+ data.selection = options[0]
|
|
|
+ ui.select(options).bind_value(data, 'selection')
|
|
|
+
|
|
|
+ screen.open('/')
|
|
|
+ screen.should_not_contain('2,2')
|
|
|
+ element = screen.click('1,1')
|
|
|
+ screen.click_at_position(element, x=20, y=100)
|
|
|
+ screen.wait(0.3)
|
|
|
+ screen.should_contain('2,2')
|
|
|
+ screen.should_not_contain('1,1')
|
|
|
+ assert data.selection == (2, 2)
|
|
|
+
|
|
|
+
|
|
|
+def test_ui_select_with_list_of_lists(screen: Screen):
|
|
|
+ class Model():
|
|
|
+ selection = None
|
|
|
+ data = Model()
|
|
|
+ options = [[1, 1], [2, 2], [3, 3]]
|
|
|
+ data.selection = options[0]
|
|
|
+ ui.select(options).bind_value(data, 'selection')
|
|
|
+
|
|
|
+ screen.open('/')
|
|
|
+ screen.should_not_contain('2,2')
|
|
|
+ element = screen.click('1,1')
|
|
|
+ screen.click_at_position(element, x=20, y=100)
|
|
|
+ screen.wait(0.3)
|
|
|
+ screen.should_contain('2,2')
|
|
|
+ screen.should_not_contain('1,1')
|
|
|
+ assert data.selection == [2, 2]
|