code: def test_driver_extra_raises_warning_by_default(self, caplog):
      with caplog.at_level(
          logging.WARNING,
          logger="airflow.providers.jdbc.hooks.test_jdbc",
      ):
          driver_path = get_hook(
              conn_params=dict(
                  extra='{"driver_path": "Blah driver path"}'
              )
          ).driver_path
          assert (
              "You have supplied 'driver_path' via connection extra but it will not be used"
          ) in caplog.text
          assert driver_path is None
  
          driver_class = get_hook(
              conn_params=dict(
                  extra='{"driver_class": "Blah driver class"}'
              )
          ).driver_class
          assert (
              "You have supplied 'driver_class' via connection extra but it will not be used"
          ) in caplog.text
          assert driver_class is None
  
imports: from __future__ import annotations
  import json
  import logging
  from unittest import mock
  from unittest.mock import Mock, patch
  import pytest
  from airflow.models import Connection
  from airflow.providers.jdbc.hooks.jdbc import JdbcHook
  from airflow.utils import db
label_desc: Use image node_id 7 for calling the TestJdbcHook obj's underlying member method code with example usage: obj.test_driver_extra_raises_warning_by_default(caplog) without return types