code: def test_auth_custom_auth_denied() -> None:
      from superset.db_engine_specs.trino import TrinoEngineSpec
  
      database = Mock()
      auth_method = "my.module:TrinoAuthClass"
      auth_params = {"params1": "params1", "params2": "params2"}
      database.encrypted_extra = json.dumps(
          {"auth_method": auth_method, "auth_params": auth_params}
      )
  
      superset.config.ALLOWED_EXTRA_AUTHENTICATIONS = {}
  
      with pytest.raises(ValueError) as excinfo:
          TrinoEngineSpec.update_params_from_encrypted_extra(
              database, {}
          )
  
      assert str(excinfo.value) == (
          f"For security reason, custom authentication '{auth_method}' "
          f"must be listed in 'ALLOWED_EXTRA_AUTHENTICATIONS' config"
      )
  
imports: import copy
  import json
  from datetime import datetime
  from typing import Any, Optional
  from unittest.mock import Mock, patch
  import pandas
  import pytest
  from pytest_mock import MockerFixture
  from sqlalchemy import types
  from trino.sqlalchemy import datatype
  import superset.config
  from superset.constants import QUERY_CANCEL_KEY, QUERY_EARLY_CANCEL_KEY, USER_AGENT
  from superset.superset_typing import ResultSetColumnType, SQLAColumnType
  from superset.utils.core import GenericDataType
  from tests.unit_tests.db_engine_specs.utils import assert_column_spec, assert_convert_dttm
  from tests.unit_tests.fixtures.common import dttm
label_desc: Use image node_id 9 for calling a global function with example usage: test_auth_custom_auth_denied() without return types