curds: Add a function for finding the root node of the PlaylistNode tree

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2019-04-22 08:55:24 -04:00
parent 33e2af2c2d
commit cfee39ce17
2 changed files with 20 additions and 0 deletions

View File

@ -52,6 +52,11 @@ class PlaylistNode:
return [ ]
return self.parent.get_path() + [ self.node_index() ]
def get_root(self):
if self.parent == None:
return self
return self.parent.get_root()
def has_sibling(self):
return (self.next_child != None) or (self.prev_child != None)

View File

@ -211,6 +211,21 @@ class TestPlaylistNode(unittest.TestCase):
self.assertIsNone(root.get_node([ 0, 1, 0 ]))
self.assertIsNone(root.get_node([ 1, 0, 0 ]))
def test_node_get_root(self):
root = node.PlaylistNode()
a = node.PlaylistNode("a")
b = node.PlaylistNode("b")
c = node.PlaylistNode("c")
root.append_child(a)
a.append_child(b)
b.append_child(c)
self.assertEqual(root.get_root(), root)
self.assertEqual(a.get_root(), root)
self.assertEqual(b.get_root(), root)
self.assertEqual(c.get_root(), root)
def test_node_reset(self):
root = node.PlaylistNode()
a = node.PlaylistNode("a")