diff --git a/tests/integration/container/conftest.py b/tests/integration/container/conftest.py index 53c73c6f..cc42d7cc 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] @@ -144,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 24a6e485..14864033 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": 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