code: def test_does_not_clear_cache_when_ttl_changes(self):
      with patch.object(
          MockConnection, "__init__", return_value=None
      ) as patched_init:
          connection_factory("my_connection1", MockConnection, ttl=10)
          connection_factory("my_connection2", MockConnection, ttl=20)
          connection_factory("my_connection1", MockConnection, ttl=10)
          connection_factory("my_connection2", MockConnection, ttl=20)
  
      assert patched_init.call_count == 2
  
imports: import os
  import sys
  import threading
  import unittest
  from unittest.mock import MagicMock, mock_open, patch
  import pytest
  from parameterized import parameterized
  from streamlit.connections import BaseConnection, SnowflakeConnection, SnowparkConnection, SQLConnection
  from streamlit.errors import StreamlitAPIException
  from streamlit.runtime.caching.cache_resource_api import _resource_caches
  from streamlit.runtime.connection_factory import _create_connection, _get_first_party_connection, connection_factory
  from streamlit.runtime.scriptrunner import add_script_run_ctx
  from streamlit.runtime.secrets import secrets_singleton
  from tests.testutil import create_mock_script_run_ctx
label_desc: Use image node_id 13 for calling the ConnectionFactoryTest obj's underlying member method code with example usage: obj.test_does_not_clear_cache_when_ttl_changes() without return types