class_docstr: Filter node test.
class_docstr_tok: ["Filter","node","test","."]
code: def test_schema_cover(self):
      in_que = DataQueue(
          [("url", ColumnType.SCALAR), ("num", ColumnType.QUEUE)]
      )
      size = 10
      for i in range(size):
          in_que.put(("test_url", i))
      in_que.seal()
      out_que1 = DataQueue(
          [("url", ColumnType.SCALAR), ("num", ColumnType.QUEUE)]
      )
      out_que2 = DataQueue([("num", ColumnType.QUEUE)])
      node_info = copy.deepcopy(self.node_info)
      node_info["outputs"] = ("num",)
      node_repr = NodeRepr(uid="test_node", **node_info)
      node = create_node(
          node_repr, self.op_pool, [in_que], [out_que1, out_que2]
      )
      self.assertTrue(node.initialize())
      f = self.thread_pool.submit(node.process)
      f.result()
      self.assertTrue(node.status == NodeStatus.FINISHED)
      self.assertTrue(out_que1.sealed)
      self.assertTrue(out_que2.sealed)
      self.assertEqual(out_que1.size, 4)
      self.assertEqual(out_que2.size, 4)
      for i in range(6, size):
          self.assertEqual(
              out_que1.get_dict(), {"url": "test_url", "num": i}
          )
  
          self.assertEqual(out_que2.get_dict(), {"num": i})
  
imports: import unittest
  import time
  import copy
  import uuid
  from concurrent.futures import ThreadPoolExecutor
  from towhee.runtime.node_repr import NodeRepr
  from towhee.runtime.nodes import create_node, NodeStatus
  from towhee.runtime.data_queue import DataQueue, ColumnType, Empty
  from towhee.runtime.operator_manager import OperatorPool
label_desc: Use image node_id 4 for calling the TestFilterNode obj's underlying member method code with example usage: obj.test_schema_cover() without return types