From a7a49ed18adefb2f3d101906573e0db6fa859fd1 Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Sat, 29 Oct 2022 16:40:06 +0200 Subject: [PATCH 1/4] Add Pool.closed readonly attribute --- asyncpg/pool.py | 8 ++++++++ tests/test_pool.py | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/asyncpg/pool.py b/asyncpg/pool.py index 9bd2a3e3..5a9d8549 100644 --- a/asyncpg/pool.py +++ b/asyncpg/pool.py @@ -446,6 +446,14 @@ async def _initialize(self): await asyncio.gather(*connect_tasks) + @property + def closed(self): + """Return a boolean for whether this pool has already been closed/terminated. + + .. versionadded:: 0.28.0 + """ + return self._closed + def get_size(self): """Return the current number of connections in this pool. diff --git a/tests/test_pool.py b/tests/test_pool.py index b77783e9..ac52d8ea 100644 --- a/tests/test_pool.py +++ b/tests/test_pool.py @@ -740,6 +740,17 @@ async def test_pool_size_and_capacity(self): self.assertEqual(pool.get_size(), 3) self.assertEqual(pool.get_idle_size(), 0) + async def test_pool_closed(self): + async with self.create_pool() as pool: + self.assertFalse(pool.closed) + await pool.close() + self.assertTrue(pool.closed) + + async with self.create_pool() as pool: + self.assertFalse(pool.closed) + await pool.terminate() + self.assertTrue(pool.closed) + async def test_pool_handles_transaction_exit_in_asyncgen_1(self): pool = await self.create_pool(database='postgres', min_size=1, max_size=1) From 5c0cd077820ee03fd9bb4bac8cf4bc23ba3f8850 Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Sun, 30 Oct 2022 11:29:34 +0100 Subject: [PATCH 2/4] pool.closed -> pool.is_closing() --- asyncpg/pool.py | 5 ++--- tests/test_pool.py | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/asyncpg/pool.py b/asyncpg/pool.py index 5a9d8549..ea1357bb 100644 --- a/asyncpg/pool.py +++ b/asyncpg/pool.py @@ -446,13 +446,12 @@ async def _initialize(self): await asyncio.gather(*connect_tasks) - @property - def closed(self): + def is_closed(self): """Return a boolean for whether this pool has already been closed/terminated. .. versionadded:: 0.28.0 """ - return self._closed + return self._closed or self._closing def get_size(self): """Return the current number of connections in this pool. diff --git a/tests/test_pool.py b/tests/test_pool.py index ac52d8ea..6b1247c6 100644 --- a/tests/test_pool.py +++ b/tests/test_pool.py @@ -742,14 +742,14 @@ async def test_pool_size_and_capacity(self): async def test_pool_closed(self): async with self.create_pool() as pool: - self.assertFalse(pool.closed) + self.assertFalse(pool.is_closed()) await pool.close() - self.assertTrue(pool.closed) + self.assertTrue(pool.is_closed()) async with self.create_pool() as pool: - self.assertFalse(pool.closed) + self.assertFalse(pool.is_closed()) await pool.terminate() - self.assertTrue(pool.closed) + self.assertTrue(pool.is_closed()) async def test_pool_handles_transaction_exit_in_asyncgen_1(self): pool = await self.create_pool(database='postgres', From 052508feda4f37eb643eeee9f113d82e31e0469b Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Sat, 5 Nov 2022 11:41:24 +0100 Subject: [PATCH 3/4] is_closed() -> is_closing() --- asyncpg/pool.py | 4 ++-- tests/test_pool.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/asyncpg/pool.py b/asyncpg/pool.py index ea1357bb..eaf501f4 100644 --- a/asyncpg/pool.py +++ b/asyncpg/pool.py @@ -446,8 +446,8 @@ async def _initialize(self): await asyncio.gather(*connect_tasks) - def is_closed(self): - """Return a boolean for whether this pool has already been closed/terminated. + def is_closing(self): + """Return ``True`` if the pool is closing or is closed. .. versionadded:: 0.28.0 """ diff --git a/tests/test_pool.py b/tests/test_pool.py index 6b1247c6..7e15e945 100644 --- a/tests/test_pool.py +++ b/tests/test_pool.py @@ -740,16 +740,16 @@ async def test_pool_size_and_capacity(self): self.assertEqual(pool.get_size(), 3) self.assertEqual(pool.get_idle_size(), 0) - async def test_pool_closed(self): + async def test_pool_closing(self): async with self.create_pool() as pool: - self.assertFalse(pool.is_closed()) + self.assertFalse(pool.is_closing()) await pool.close() - self.assertTrue(pool.is_closed()) + self.assertTrue(pool.is_closing()) async with self.create_pool() as pool: - self.assertFalse(pool.is_closed()) + self.assertFalse(pool.is_closing()) await pool.terminate() - self.assertTrue(pool.is_closed()) + self.assertTrue(pool.is_closing()) async def test_pool_handles_transaction_exit_in_asyncgen_1(self): pool = await self.create_pool(database='postgres', From 3dc441fd9917621b67756d80ec1945c2c9f0cc01 Mon Sep 17 00:00:00 2001 From: David Baumgold Date: Sun, 6 Nov 2022 12:45:47 +0100 Subject: [PATCH 4/4] fix test --- tests/test_pool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_pool.py b/tests/test_pool.py index 7e15e945..5577632c 100644 --- a/tests/test_pool.py +++ b/tests/test_pool.py @@ -748,7 +748,7 @@ async def test_pool_closing(self): async with self.create_pool() as pool: self.assertFalse(pool.is_closing()) - await pool.terminate() + pool.terminate() self.assertTrue(pool.is_closing()) async def test_pool_handles_transaction_exit_in_asyncgen_1(self):