code: def test_impersonate_user_trino(self, mocked_create_engine):
      principal_user = security_manager.find_user(username="gamma")
  
      with override_user(principal_user):
          model = Database(
              database_name="test_database",
              sqlalchemy_uri="trino://localhost",
          )
          model.impersonate_user = True
          model._get_sqla_engine()
          call_args = mocked_create_engine.call_args
  
          assert str(call_args[0][0]) == "trino://localhost"
          assert call_args[1]["connect_args"]["user"] == "gamma"
  
          model = Database(
              database_name="test_database",
              sqlalchemy_uri="trino://original_user:original_user_password@localhost",
          )
  
          model.impersonate_user = True
          model._get_sqla_engine()
          call_args = mocked_create_engine.call_args
  
          assert (
              str(call_args[0][0])
              == "trino://original_user:original_user_password@localhost"
          )
          assert call_args[1]["connect_args"]["user"] == "gamma"
  
imports: import json
  from superset.utils.core import DatasourceType
  import textwrap
  import unittest
  from unittest import mock
  from superset import security_manager
  from superset.connectors.sqla.models import SqlaTable
  from superset.exceptions import SupersetException
  from superset.utils.core import override_user
  from tests.integration_tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices, load_birth_names_data
  import pytest
  from sqlalchemy.engine.url import make_url
  from sqlalchemy.types import DateTime
  import tests.integration_tests.test_app
  from superset import app, db
  from superset.db_engine_specs.postgres import PostgresEngineSpec
  from superset.common.db_query_status import QueryStatus
  from superset.models.core import Database
  from superset.models.slice import Slice
  from superset.utils.database import get_example_database
  from .base_tests import SupersetTestCase
  from .fixtures.energy_dashboard import load_energy_table_with_slice, load_energy_table_data
label_desc: Use image node_id 8 for calling the TestDatabaseModel obj's underlying member method code with example usage: obj.test_impersonate_user_trino(mocked_create_engine) without return types