minor updates
This commit is contained in:
@@ -320,7 +320,7 @@ class DataGridsManager(SingleInstance, DatagridMetadataProvider):
|
|||||||
def _mk_tree(self):
|
def _mk_tree(self):
|
||||||
tree = TreeView(self, _id="-treeview")
|
tree = TreeView(self, _id="-treeview")
|
||||||
for element in self._state.elements:
|
for element in self._state.elements:
|
||||||
parent_id = tree.ensure_path(element.namespace)
|
parent_id = tree.ensure_path(element.namespace, node_type="folder")
|
||||||
tree.add_node(TreeNode(id=element.document_id,
|
tree.add_node(TreeNode(id=element.document_id,
|
||||||
label=element.name,
|
label=element.name,
|
||||||
type=element.type,
|
type=element.type,
|
||||||
|
|||||||
@@ -341,10 +341,11 @@ class TreeView(MultipleInstance):
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
def _start_rename(self, node_id: str):
|
def _start_rename(self, node_id: str):
|
||||||
"""Start renaming a node (sets editing state)."""
|
"""Start renaming a node (sets editing state and selection)."""
|
||||||
if node_id not in self._state.items:
|
if node_id not in self._state.items:
|
||||||
raise ValueError(f"Node {node_id} does not exist")
|
raise ValueError(f"Node {node_id} does not exist")
|
||||||
|
|
||||||
|
self._state.selected = node_id
|
||||||
self._state.editing = node_id
|
self._state.editing = node_id
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|||||||
@@ -570,8 +570,8 @@ class TestTreeviewBehaviour:
|
|||||||
assert first_id == second_id
|
assert first_id == second_id
|
||||||
assert tree_view._state.items[first_id].label == "folder2"
|
assert tree_view._state.items[first_id].label == "folder2"
|
||||||
|
|
||||||
def test_i_can_add_the_same_node_id_twice(self, root_instance):
|
def test_adding_node_with_duplicate_id_replaces_existing(self, root_instance):
|
||||||
"""Test that adding a node with the same ID as an existing node raises ValueError."""
|
"""Test that adding a node with duplicate ID replaces the existing node."""
|
||||||
tree_view = TreeView(root_instance)
|
tree_view = TreeView(root_instance)
|
||||||
|
|
||||||
node1 = TreeNode(label="Node", type="folder", id="existing_id")
|
node1 = TreeNode(label="Node", type="folder", id="existing_id")
|
||||||
@@ -580,8 +580,12 @@ class TestTreeviewBehaviour:
|
|||||||
node2 = TreeNode(label="Other Node", type="folder", id="existing_id")
|
node2 = TreeNode(label="Other Node", type="folder", id="existing_id")
|
||||||
tree_view.add_node(node2)
|
tree_view.add_node(node2)
|
||||||
|
|
||||||
assert len(tree_view._state.items) == 1, "Node should not have been added to items"
|
# Only one node should exist
|
||||||
assert tree_view._state.items[node1.id] == node2, "Node should not have been replaced"
|
assert len(tree_view._state.items) == 1, "Should have only one node with this ID"
|
||||||
|
|
||||||
|
# The second node should have replaced the first
|
||||||
|
assert tree_view._state.items["existing_id"] == node2, "Second node should replace the first"
|
||||||
|
assert tree_view._state.items["existing_id"].label == "Other Node", "Replacement node should have new label"
|
||||||
|
|
||||||
def test_selecting_node_cancels_edit_mode(self, root_instance):
|
def test_selecting_node_cancels_edit_mode(self, root_instance):
|
||||||
"""Test that selecting a node cancels any active edit mode."""
|
"""Test that selecting a node cancels any active edit mode."""
|
||||||
|
|||||||
Reference in New Issue
Block a user