docstr: :param test_conn_uri: URI that we use to create connection
  :param test_conn_attributes: we expect a connection object created with `test_uri` to have these
  attributes
  :param description: human-friendly name appended to parameterized test
code: def __init__(
      self,
      test_conn_uri: str,
      test_conn_attributes: dict,
      description: str,
  ):
      """
  
      :param test_conn_uri: URI that we use to create connection
      :param test_conn_attributes: we expect a connection object created with `test_uri` to have these
      attributes
      :param description: human-friendly name appended to parameterized test
      """
      self.test_uri = test_conn_uri
      self.test_conn_attributes = test_conn_attributes
      self.description = description
  
imports: from __future__ import annotations
  import json
  import os
  import re
  from collections import namedtuple
  from unittest import mock
  import pytest
  import sqlalchemy
  from cryptography.fernet import Fernet
  from airflow.exceptions import AirflowException
  from airflow.hooks.base import BaseHook
  from airflow.models import Connection, crypto
  from airflow.providers.sqlite.hooks.sqlite import SqliteHook
  from airflow.providers_manager import HookInfo
  from tests.test_utils.config import conf_vars
label_desc: Use image node_id 1 to create a new UriTestCaseConfig object  with example: obj = UriTestCaseConfig(test_conn_uri, test_conn_attributes, description)