Implemented enable/disable for keyboard support

This commit is contained in:
2026-03-15 08:33:39 +01:00
parent f773fd1611
commit feb9da50b2
7 changed files with 151 additions and 54 deletions

View File

@@ -72,7 +72,7 @@ class TestDataGridsManagerBehaviour:
"""
# Create a folder and select it
folder_id = datagrids_manager._tree.ensure_path("MyFolder")
datagrids_manager._tree._select_node(folder_id)
datagrids_manager._tree.handle_select_node(folder_id)
result = datagrids_manager.handle_new_grid()
@@ -101,7 +101,7 @@ class TestDataGridsManagerBehaviour:
datagrids_manager._tree.add_node(leaf, parent_id=folder_id)
# Select the leaf
datagrids_manager._tree._select_node(leaf.id)
datagrids_manager._tree.handle_select_node(leaf.id)
result = datagrids_manager.handle_new_grid()

View File

@@ -145,7 +145,7 @@ class TestTreeviewBehaviour:
node = TreeNode(label="Node", type="folder")
tree_view.add_node(node)
tree_view._select_node(node.id)
tree_view.handle_select_node(node.id)
assert tree_view._state.selected == node.id
@@ -155,7 +155,7 @@ class TestTreeviewBehaviour:
node = TreeNode(label="Old Name", type="folder")
tree_view.add_node(node)
tree_view._start_rename(node.id)
tree_view.handle_start_rename(node.id)
assert tree_view._state.editing == node.id
@@ -164,9 +164,9 @@ class TestTreeviewBehaviour:
tree_view = TreeView(root_instance)
node = TreeNode(label="Old Name", type="folder")
tree_view.add_node(node)
tree_view._start_rename(node.id)
tree_view.handle_start_rename(node.id)
tree_view._save_rename(node.id, "New Name")
tree_view.handle_save_rename(node.id, "New Name")
assert tree_view._state.items[node.id].label == "New Name"
assert tree_view._state.editing is None
@@ -176,9 +176,9 @@ class TestTreeviewBehaviour:
tree_view = TreeView(root_instance)
node = TreeNode(label="Name", type="folder")
tree_view.add_node(node)
tree_view._start_rename(node.id)
tree_view.handle_start_rename(node.id)
tree_view._cancel_rename()
tree_view.handle_cancel_rename()
assert tree_view._state.editing is None
assert tree_view._state.items[node.id].label == "Name"
@@ -193,7 +193,7 @@ class TestTreeviewBehaviour:
tree_view.add_node(child, parent_id=parent.id)
# Delete child (leaf node)
tree_view._delete_node(child.id)
tree_view.handle_delete_node(child.id)
assert child.id not in tree_view._state.items
assert child.id not in parent.children
@@ -225,7 +225,7 @@ class TestTreeviewBehaviour:
# Try to delete parent (has children)
with pytest.raises(ValueError, match="Cannot delete node.*with children"):
tree_view._delete_node(parent.id)
tree_view.handle_delete_node(parent.id)
def test_i_cannot_add_sibling_to_root(self, root_instance):
"""Test that adding sibling to root node raises an error."""
@@ -243,7 +243,7 @@ class TestTreeviewBehaviour:
# Try to select node that doesn't exist
with pytest.raises(ValueError, match="Node.*does not exist"):
tree_view._select_node("nonexistent_id")
tree_view.handle_select_node("nonexistent_id")
def test_add_node_prevents_duplicate_children(self, root_instance):
"""Test that add_node prevents adding duplicate child IDs."""
@@ -317,11 +317,11 @@ class TestTreeviewBehaviour:
tree_view.add_node(child, parent_id=parent.id)
# Select the child
tree_view._select_node(child.id)
tree_view.handle_select_node(child.id)
assert tree_view._state.selected == child.id
# Delete the selected child
tree_view._delete_node(child.id)
tree_view.handle_delete_node(child.id)
# Selection should be cleared
assert tree_view._state.selected is None
@@ -340,7 +340,7 @@ class TestTreeviewBehaviour:
assert parent.id in tree_view._state.opened
# Delete the child (making parent a leaf)
tree_view._delete_node(child.id)
tree_view.handle_delete_node(child.id)
# Now delete the parent (now a leaf node)
# First remove it from root by creating a grandparent
@@ -349,7 +349,7 @@ class TestTreeviewBehaviour:
parent.parent = grandparent.id
grandparent.children.append(parent.id)
tree_view._delete_node(parent.id)
tree_view.handle_delete_node(parent.id)
# Parent should be removed from opened list
assert parent.id not in tree_view._state.opened
@@ -360,7 +360,7 @@ class TestTreeviewBehaviour:
# Try to start rename on node that doesn't exist
with pytest.raises(ValueError, match="Node.*does not exist"):
tree_view._start_rename("nonexistent_id")
tree_view.handle_start_rename("nonexistent_id")
def test_i_cannot_save_rename_nonexistent_node(self, root_instance):
"""Test that saving rename for nonexistent node raises error."""
@@ -368,7 +368,7 @@ class TestTreeviewBehaviour:
# Try to save rename for node that doesn't exist
with pytest.raises(ValueError, match="Node.*does not exist"):
tree_view._save_rename("nonexistent_id", "New Name")
tree_view.handle_save_rename("nonexistent_id", "New Name")
def test_i_cannot_add_sibling_to_nonexistent_node(self, root_instance):
"""Test that adding sibling to nonexistent node raises error."""
@@ -597,11 +597,11 @@ class TestTreeviewBehaviour:
tree_view.add_node(node2)
# Start editing node1
tree_view._start_rename(node1.id)
tree_view.handle_start_rename(node1.id)
assert tree_view._state.editing == node1.id
# Select node2
tree_view._select_node(node2.id)
tree_view.handle_select_node(node2.id)
# Edit mode should be cancelled
assert tree_view._state.editing is None
@@ -615,11 +615,11 @@ class TestTreeviewBehaviour:
tree_view.add_node(node)
# Start editing the node
tree_view._start_rename(node.id)
tree_view.handle_start_rename(node.id)
assert tree_view._state.editing == node.id
# Select the same node
tree_view._select_node(node.id)
tree_view.handle_select_node(node.id)
# Edit mode should be cancelled
assert tree_view._state.editing is None
@@ -784,7 +784,7 @@ class TestTreeViewRender:
"""
node = TreeNode(label="Selected Node", type="file")
tree_view.add_node(node)
tree_view._select_node(node.id)
tree_view.handle_select_node(node.id)
rendered = tree_view.render()
selected_container = find_one(rendered, Div(data_node_id=node.id))
@@ -814,7 +814,7 @@ class TestTreeViewRender:
"""
node = TreeNode(label="Edit Me", type="file")
tree_view.add_node(node)
tree_view._start_rename(node.id)
tree_view.handle_start_rename(node.id)
rendered = tree_view.render()
editing_container = find_one(rendered, Div(data_node_id=node.id))
@@ -1009,7 +1009,7 @@ class TestTreeViewRender:
"""
node = TreeNode(label="Edit Me", type="file")
tree_view.add_node(node)
tree_view._start_rename(node.id)
tree_view.handle_start_rename(node.id)
# Step 1: Extract the input element
rendered = tree_view.render()