code: def test_bind_func_expr_with_star(self):
      func_expr = MagicMock(
          name="func_expr",
          alias=Alias("func_expr"),
          output_col_aliases=[],
      )
      func_expr.name.lower.return_value = "func_expr"
      func_expr.children = [TupleValueExpression(name="*")]
  
      binderContext = MagicMock()
      tvp1 = ("T", "col1")
      tvp2 = ("T", "col2")
      binderContext._catalog.return_value.get_function_catalog_entry_by_name.return_value = (
          None
      )
      binderContext._get_all_alias_and_col_name.return_value = [
          tvp1,
          tvp2,
      ]
  
      with patch.object(StatementBinder, "bind") as mock_binder:
          binder = StatementBinder(binderContext)
          with self.assertRaises(BinderError):
              binder._bind_func_expr(func_expr)
          call1, call2 = mock_binder.call_args_list
          self.assertEqual(
              call1.args[0],
              TupleValueExpression(name=tvp1[1], table_alias=tvp1[0]),
          )
          self.assertEqual(
              call2.args[0],
              TupleValueExpression(name=tvp2[1], table_alias=tvp2[0]),
          )
  
imports: import unittest
  from unittest.mock import MagicMock, Mock, patch
  from evadb.binder.binder_utils import BinderError
  from evadb.binder.statement_binder import StatementBinder
  from evadb.binder.statement_binder_context import StatementBinderContext
  from evadb.catalog.catalog_type import ColumnType, NdArrayType
  from evadb.catalog.models.utils import ColumnCatalogEntry
  from evadb.catalog.sql_config import IDENTIFIER_COLUMN
  from evadb.expression.function_expression import FunctionExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.parser.alias import Alias
  from evadb.parser.create_statement import ColumnDefinition
label_desc: Use image node_id 10 for calling the StatementBinderTests obj's underlying member method code with example usage: obj.test_bind_func_expr_with_star() without return types