From 1c6e96e7ddaca0fd0f8295ac5531c161d14501cb Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 06:58:55 +0200 Subject: Merging upstream version 1.7.0. Signed-off-by: Daniel Baumann --- tests/test_tree.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'tests/test_tree.py') diff --git a/tests/test_tree.py b/tests/test_tree.py index 287b734..6fd6a64 100644 --- a/tests/test_tree.py +++ b/tests/test_tree.py @@ -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}) -- cgit v1.2.3