code: def test_get_field_data_type(self):
      schema = TableSchema(
          ["a", "b", "c"],
          [DataTypes.INT(), DataTypes.BIGINT(), DataTypes.STRING()],
      )
  
      type_by_name = schema.get_field_data_type("b")
      type_by_index = schema.get_field_data_type(2)
      type_by_name_not_exist = schema.get_field_data_type("d")
      type_by_index_not_exist = schema.get_field_data_type(6)
      with self.assertRaises(TypeError):
          schema.get_field_data_type(None)
  
      self.assertEqual(DataTypes.BIGINT(), type_by_name)
      self.assertEqual(DataTypes.STRING(), type_by_index)
      self.assertIsNone(type_by_name_not_exist)
      self.assertIsNone(type_by_index_not_exist)
  
file_path: flink/flink-python/pyflink/table/tests/test_table_schema.py
imports: from pyflink.table.types import DataTypes
  from pyflink.table.table_schema import TableSchema
  from pyflink.testing.test_case_utils import PyFlinkTestCase
label_desc: Use image node_id 4 for calling the TableSchemaTests obj's underlying member method code with example usage: obj.test_get_field_data_type() without return types