mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
Add an insert method to the NodeList
This commit is contained in:
@@ -64,6 +64,17 @@ class NodeList(Sequence):
|
||||
self._nodes_set.add(widget)
|
||||
self._updates += 1
|
||||
|
||||
def _insert(self, index: int, widget: Widget) -> None:
|
||||
"""Insert a Widget.
|
||||
|
||||
Args:
|
||||
widget (Widget): A widget.
|
||||
"""
|
||||
if widget not in self._nodes_set:
|
||||
self._nodes.insert(index, widget)
|
||||
self._nodes_set.add(widget)
|
||||
self._updates += 1
|
||||
|
||||
def _remove(self, widget: Widget) -> None:
|
||||
"""Remove a widget from the list.
|
||||
|
||||
|
||||
@@ -21,6 +21,16 @@ def test_repeat_add_one():
|
||||
nodes._append(widget)
|
||||
assert len(nodes)==1
|
||||
|
||||
def test_insert():
|
||||
nodes = NodeList()
|
||||
widget1 = Widget()
|
||||
widget2 = Widget()
|
||||
widget3 = Widget()
|
||||
nodes._append(widget1)
|
||||
nodes._append(widget3)
|
||||
nodes._insert(1,widget2)
|
||||
assert list(nodes) == [widget1,widget2,widget3]
|
||||
|
||||
def test_truthy():
|
||||
"""Does a node list act as a truthy object?"""
|
||||
nodes = NodeList()
|
||||
|
||||
Reference in New Issue
Block a user