code: def test_insert_function(
      self,
      checksum_mock,
      functionmetadata_mock,
      functionio_mock,
      function_mock,
  ):
      catalog = CatalogManager(MagicMock())
      function_io_list = [MagicMock()]
      function_metadata_list = [MagicMock()]
      actual = catalog.insert_function_catalog_entry(
          "function",
          "sample.py",
          "classification",
          function_io_list,
          function_metadata_list,
      )
      function_mock.return_value.insert_entry.assert_called_with(
          "function",
          "sample.py",
          "classification",
          checksum_mock.return_value,
          function_io_list,
          function_metadata_list,
      )
      checksum_mock.assert_called_with("sample.py")
      self.assertEqual(
          actual, function_mock.return_value.insert_entry.return_value
      )
  
imports: import unittest
  import mock
  import pytest
  from mock import ANY, MagicMock
  from evadb.catalog.catalog_manager import CatalogManager
  from evadb.catalog.catalog_type import ColumnType, TableType
  from evadb.catalog.catalog_utils import get_video_table_column_definitions
  from evadb.catalog.models.column_catalog import ColumnCatalogEntry
  from evadb.catalog.models.function_catalog import FunctionCatalogEntry
  from evadb.parser.table_ref import TableInfo
  from evadb.parser.types import FileFormatType
label_desc: Use image node_id 8 for calling the CatalogManagerTests obj's underlying member method code with example usage: obj.test_insert_function(checksum_mock, functionmetadata_mock, functionio_mock, function_mock) without return types