code: def test_set_thick_mode_params(self, mock_connect, mock_init_client):
      # Verify params overrides connection config extra
      thick_mode_test = {
          "thick_mode": False,
          "thick_mode_lib_dir": "/opt/oracle/instantclient",
          "thick_mode_config_dir": "/opt/oracle/config",
      }
      self.connection.extra = json.dumps(thick_mode_test)
      db_hook = OracleHook(
          thick_mode=True,
          thick_mode_lib_dir="/test",
          thick_mode_config_dir="/test_conf",
      )
      db_hook.get_connection = mock.Mock()
      db_hook.get_connection.return_value = self.connection
      db_hook.get_conn()
      assert mock_connect.call_count == 1
      assert mock_init_client.call_count == 1
      args, kwargs = mock_init_client.call_args
      assert args == ()
      assert kwargs["lib_dir"] == "/test"
      assert kwargs["config_dir"] == "/test_conf"
  
imports: from __future__ import annotations
  import json
  from datetime import datetime
  from unittest import mock
  import numpy
  import oracledb
  import pytest
  from airflow.models import Connection
  from airflow.providers.oracle.hooks.oracle import OracleHook
label_desc: Use image node_id 12 for calling the TestOracleHookConn obj's underlying member method code with example usage: obj.test_set_thick_mode_params(mock_connect, mock_init_client) without return types