code: def test_dump_task_info_tree(self):
      with patch("gokart.target.SingleFileTarget.dump") as mock_obj:
          self.dumped_data = None
  
          def _side_effect(obj, lock_at_dump):
              self.dumped_data = obj
  
          mock_obj.side_effect = _side_effect
          dump_task_info_tree(
              task=_TaskInfoExampleTaskC(),
              task_info_dump_path="path.pkl",
              ignore_task_names=["_TaskInfoExampleTaskB"],
          )
  
          self.assertEqual(
              self.dumped_data.name, "_TaskInfoExampleTaskC"
          )
          self.assertEqual(
              self.dumped_data.children_task_infos[0].name,
              "_TaskInfoExampleTaskA",
          )
  
          self.assertEqual(
              self.dumped_data.requires.keys(), {"taskA", "taskB"}
          )
          self.assertEqual(
              self.dumped_data.requires["taskA"].name,
              "_TaskInfoExampleTaskA",
          )
          self.assertEqual(
              self.dumped_data.requires["taskB"].name,
              "_TaskInfoExampleTaskB",
          )
  
imports: import unittest
  from unittest.mock import patch
  import luigi
  import luigi.mock
  from luigi.mock import MockFileSystem, MockTarget
  import gokart
  from gokart.tree.task_info import dump_task_info_table, dump_task_info_tree, make_task_info_as_tree_str, make_task_info_tree
label_desc: Use image node_id 1 for calling the TestTaskInfoTree obj's underlying member method code with example usage: obj.test_dump_task_info_tree() without return types