code: def test_task_runner(
      sql_client: SqlClient,
      mf_test_session_state: MetricFlowTestSessionState,
  ) -> None:  # noqa: D
      dw_validator = DataWarehouseModelValidator(sql_client=sql_client)
  
      def good_query() -> Tuple[str, SqlBindParameters]:
          return ("SELECT 'foo' AS foo", SqlBindParameters())
  
      tasks = [
          DataWarehouseValidationTask(
              query_and_params_callable=good_query,
              error_message="Could not select foo",
          ),
      ]
  
      issues = dw_validator.run_tasks(tasks=tasks)
      assert len(issues.all_issues) == 0
  
      def bad_query() -> Tuple[str, SqlBindParameters]:
          return (
              "SELECT (true) AS col1 FROM doesnt_exist",
              SqlBindParameters(),
          )
  
      err_msg_bad = (
          "Could not access table 'doesnt_exist' in data warehouse"
      )
      bad_task = DataWarehouseValidationTask(
          query_and_params_callable=bad_query, error_message=err_msg_bad
      )
  
      tasks.append(bad_task)
      issues = dw_validator.run_tasks(tasks=tasks)
      assert len(issues.all_issues) == 1
      assert len(issues.errors) == 1
      assert err_msg_bad in issues.errors[0].message
  
imports: from __future__ import annotations
  from copy import deepcopy
  from typing import Tuple
  import pytest
  from _pytest.fixtures import FixtureRequest
  from dbt_semantic_interfaces.implementations.elements.dimension import PydanticDimension
  from dbt_semantic_interfaces.implementations.elements.entity import PydanticEntity
  from dbt_semantic_interfaces.implementations.elements.measure import PydanticMeasure
  from dbt_semantic_interfaces.implementations.semantic_manifest import PydanticSemanticManifest
  from dbt_semantic_interfaces.protocols.dimension import DimensionType
  from dbt_semantic_interfaces.protocols.entity import EntityType
  from dbt_semantic_interfaces.test_utils import semantic_model_with_guaranteed_meta
  from dbt_semantic_interfaces.transformations.semantic_manifest_transformer import PydanticSemanticManifestTransformer
  from dbt_semantic_interfaces.type_enums.aggregation_type import AggregationType
  from metricflow.model.data_warehouse_model_validator import DataWarehouseModelValidator, DataWarehouseTaskBuilder, DataWarehouseValidationTask
  from metricflow.protocols.sql_client import SqlClient
  from metricflow.sql.sql_bind_parameters import SqlBindParameters
  from metricflow.test.fixtures.setup_fixtures import MetricFlowTestSessionState
  from metricflow.test.snapshot_utils import assert_snapshot_text_equal, make_schema_replacement_function
label_desc: Use image node_id 3 for calling a global function with example usage: test_task_runner(sql_client, mf_test_session_state) and returns: str,  SqlBindParameters, str,  SqlBindParameters