diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index 9163835f..22e64188 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -95,8 +95,8 @@ known-first-party = ["fluss"] [tool.pytest.ini_options] asyncio_mode = "auto" -asyncio_default_fixture_loop_scope = "session" -timeout = 30 +asyncio_default_fixture_loop_scope = "function" +timeout = 120 [tool.mypy] python_version = "3.9" diff --git a/bindings/python/test/conftest.py b/bindings/python/test/conftest.py index 7da0f3d9..47c92807 100644 --- a/bindings/python/test/conftest.py +++ b/bindings/python/test/conftest.py @@ -124,12 +124,16 @@ def fluss_cluster(): yield (plaintext_addr, sasl_addr or plaintext_addr) -@pytest_asyncio.fixture(scope="session") +_cached_connection = None + + +@pytest_asyncio.fixture async def connection(fluss_cluster): - plaintext_addr, _sasl_addr = fluss_cluster - conn = await _connect(plaintext_addr) - yield conn - conn.close() + global _cached_connection + if _cached_connection is None: + plaintext_addr, _sasl_addr = fluss_cluster + _cached_connection = await _connect(plaintext_addr) + yield _cached_connection @pytest.fixture(scope="session") @@ -144,6 +148,6 @@ def plaintext_bootstrap_servers(fluss_cluster): return plaintext_addr -@pytest_asyncio.fixture(scope="session") +@pytest_asyncio.fixture async def admin(connection): return connection.get_admin()