From 098a9a98f0f9688c5e46e263bccc3fc49cb73f3a Mon Sep 17 00:00:00 2001 From: Favian Samatha Date: Mon, 12 Jan 2026 20:14:16 -0800 Subject: [PATCH 1/2] fix: move test_weight_rrandom_host_selector.py to unit test folder --- tests/integration/container/conftest.py | 7 ++++++- tests/{ => unit}/test_weight_random_host_selector.py | 0 2 files changed, 6 insertions(+), 1 deletion(-) rename tests/{ => unit}/test_weight_random_host_selector.py (100%) diff --git a/tests/integration/container/conftest.py b/tests/integration/container/conftest.py index 53c73c6f9..6ce77e875 100644 --- a/tests/integration/container/conftest.py +++ b/tests/integration/container/conftest.py @@ -109,7 +109,12 @@ def pytest_runtest_setup(item): logger.warning("conftest.ExceptionWhileObtainingInstanceIDs", ex) instances = list() - sleep(5) + # Only sleep if condition is still not met + if (len(instances) < request.get_num_of_instances() + or len(instances) == 0 + or not rds_utility.is_db_instance_writer(instances[0])) and ( + timeit.default_timer() - start_time) < 300: + sleep(5) assert len(instances) > 0 current_writer = instances[0] diff --git a/tests/test_weight_random_host_selector.py b/tests/unit/test_weight_random_host_selector.py similarity index 100% rename from tests/test_weight_random_host_selector.py rename to tests/unit/test_weight_random_host_selector.py From 0639abbd5c102907e4c2abcd726039c10b79a538 Mon Sep 17 00:00:00 2001 From: Favian Samatha Date: Mon, 12 Jan 2026 20:24:51 -0800 Subject: [PATCH 2/2] release resources on the provider --- tests/integration/container/conftest.py | 1 + .../container/test_read_write_splitting.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/integration/container/conftest.py b/tests/integration/container/conftest.py index 6ce77e875..cc42d7cc8 100644 --- a/tests/integration/container/conftest.py +++ b/tests/integration/container/conftest.py @@ -149,6 +149,7 @@ def pytest_runtest_setup(item): MonitoringThreadContainer.clean_up() ThreadPoolContainer.release_resources(wait=True) + ConnectionProviderManager.release_resources() ConnectionProviderManager.reset_provider() DatabaseDialectManager.reset_custom_dialect() DriverDialectManager.reset_custom_dialect() diff --git a/tests/integration/container/test_read_write_splitting.py b/tests/integration/container/test_read_write_splitting.py index 24a6e4856..148640337 100644 --- a/tests/integration/container/test_read_write_splitting.py +++ b/tests/integration/container/test_read_write_splitting.py @@ -758,7 +758,7 @@ def test_pooled_connection__reuses_cached_connection( @enable_on_features([TestEnvironmentFeatures.FAILOVER_SUPPORTED]) def test_pooled_connection__failover( - self, test_driver: TestDriver, rds_utils, conn_utils, failover_props + self, test_driver: TestDriver, rds_utils, conn_utils, failover_props, cleanup_connection_provider ): provider = SqlAlchemyPooledConnectionProvider(lambda _, __: {"pool_size": 1}) ConnectionProviderManager.set_connection_provider(provider) @@ -797,7 +797,7 @@ def test_pooled_connection__failover( @enable_on_features([TestEnvironmentFeatures.FAILOVER_SUPPORTED]) def test_pooled_connection__cluster_url_failover( - self, test_driver: TestDriver, rds_utils, conn_utils, failover_props + self, test_driver: TestDriver, rds_utils, conn_utils, failover_props, cleanup_connection_provider ): provider = SqlAlchemyPooledConnectionProvider(lambda _, __: {"pool_size": 1}) ConnectionProviderManager.set_connection_provider(provider) @@ -840,7 +840,8 @@ def test_pooled_connection__failover_failed( conn_utils, proxied_failover_props, plugin_config, - plugins + plugins, + cleanup_connection_provider, ): plugin_name, _ = plugin_config writer_host = test_environment.get_writer().get_host() @@ -888,7 +889,7 @@ def test_pooled_connection__failover_failed( @enable_on_features([TestEnvironmentFeatures.FAILOVER_SUPPORTED]) def test_pooled_connection__failover_in_transaction( - self, test_driver: TestDriver, rds_utils, conn_utils, failover_props + self, test_driver: TestDriver, rds_utils, conn_utils, failover_props, cleanup_connection_provider ): provider = SqlAlchemyPooledConnectionProvider(lambda _, __: {"pool_size": 1}) ConnectionProviderManager.set_connection_provider(provider) @@ -935,6 +936,7 @@ def test_pooled_connection__different_users( rds_utils, conn_utils, props, + cleanup_connection_provider, ): privileged_user_props = conn_utils.get_connect_params().copy() limited_user_props = conn_utils.get_connect_params().copy() @@ -1012,6 +1014,7 @@ def test_pooled_connection__least_connections( conn_utils, props, plugin_config, + cleanup_connection_provider, ): plugin_name, _ = plugin_config if plugin_name != "read_write_splitting": @@ -1061,6 +1064,7 @@ def test_pooled_connection__least_connections__pool_mapping( conn_utils, props, plugin_config, + cleanup_connection_provider, ): plugin_name, _ = plugin_config if plugin_name != "read_write_splitting":