1
0
Fork 0

Merging upstream version 1.7.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-05 14:35:47 +01:00
parent 8c30c4a435
commit dff5d07ea8
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
7 changed files with 78 additions and 180 deletions

View file

@ -35,6 +35,14 @@ class TreeCase(unittest.TestCase):
# |-- George
self.tree = tree
self.copytree = Tree(self.tree, deep=True)
self.input_dict = {
"Bill": "Harry",
"Jane": "Harry",
"Harry": None,
"Diane": "Jane",
"Mark": "Jane",
"Mary": "Harry",
}
@staticmethod
def get_t1():
@ -734,3 +742,29 @@ Hárry
t.create_node(identifier="root-B")
self.assertEqual(len(t.nodes.keys()), 1)
self.assertEqual(t.root, "root-B")
def test_from_map(self):
tree = Tree.from_map(self.input_dict)
self.assertTrue(tree.size() == 6)
self.assertTrue(
tree.root == [k for k, v in self.input_dict.items() if v is None][0]
)
tree = Tree.from_map(self.input_dict, id_func=lambda x: x.upper())
self.assertTrue(tree.size() == 6)
def data_func(x):
return x.upper()
tree = Tree.from_map(self.input_dict, data_func=data_func)
self.assertTrue(tree.size() == 6)
self.assertTrue(
tree.get_node(tree.root).data
== data_func([k for k, v in self.input_dict.items() if v is None][0])
)
with self.assertRaises(ValueError):
# invalid input payload without a root
tree = Tree.from_map({"a": "b"})
with self.assertRaises(ValueError):
# invalid input payload without more than 1 root
tree = Tree.from_map({"a": None, "b": None})