]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Close connections in TPC tests to avoid warnings in tests
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 28 Nov 2021 18:50:59 +0000 (19:50 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 28 Nov 2021 18:50:59 +0000 (19:50 +0100)
tests/dbapi20_tpc.py
tests/test_tpc.py
tests/test_tpc_async.py

index 5026a61249f84ba49c5698c874739081ec7ed7b0..7254294de6a532565738077b838d2dde36a5adf3 100644 (file)
@@ -28,19 +28,22 @@ class TwoPhaseCommitTests(unittest.TestCase):
     def test_xid(self):
         con = self.connect()
         try:
-            xid = con.xid(42, "global", "bqual")
-        except self.driver.NotSupportedError:
-            self.fail("Driver does not support transaction IDs.")
-
-        self.assertEquals(xid[0], 42)
-        self.assertEquals(xid[1], "global")
-        self.assertEquals(xid[2], "bqual")
-
-        # Try some extremes for the transaction ID:
-        xid = con.xid(0, "", "")
-        self.assertEquals(tuple(xid), (0, "", ""))
-        xid = con.xid(0x7fffffff, "a" * 64, "b" * 64)
-        self.assertEquals(tuple(xid), (0x7fffffff, "a" * 64, "b" * 64))
+            try:
+                xid = con.xid(42, "global", "bqual")
+            except self.driver.NotSupportedError:
+                self.fail("Driver does not support transaction IDs.")
+
+            self.assertEquals(xid[0], 42)
+            self.assertEquals(xid[1], "global")
+            self.assertEquals(xid[2], "bqual")
+
+            # Try some extremes for the transaction ID:
+            xid = con.xid(0, "", "")
+            self.assertEquals(tuple(xid), (0, "", ""))
+            xid = con.xid(0x7fffffff, "a" * 64, "b" * 64)
+            self.assertEquals(tuple(xid), (0x7fffffff, "a" * 64, "b" * 64))
+        finally:
+            con.close()
 
     def test_tpc_begin(self):
         con = self.connect()
index 29dd7dd280722f07caa463ce05422090f6838d1e..cde02624528dcfb966e4ae7271a6facb2feaee49 100644 (file)
@@ -1,6 +1,7 @@
 import pytest
 
 import psycopg
+from psycopg.pq import TransactionStatus
 
 
 def test_tpc_disabled(conn):
@@ -17,10 +18,10 @@ def test_tpc_disabled(conn):
 class TestTPC:
     def test_tpc_commit(self, conn, tpc):
         xid = conn.xid(1, "gtrid", "bqual")
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
 
         conn.tpc_begin(xid)
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = conn.cursor()
         cur.execute("insert into test_tpc values ('test_tpc_commit')")
@@ -28,21 +29,21 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         conn.tpc_prepare()
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
         conn.tpc_commit()
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 1
 
     def test_tpc_commit_one_phase(self, conn, tpc):
         xid = conn.xid(1, "gtrid", "bqual")
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
 
         conn.tpc_begin(xid)
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = conn.cursor()
         cur.execute("insert into test_tpc values ('test_tpc_commit_1p')")
@@ -50,16 +51,16 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         conn.tpc_commit()
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 1
 
     def test_tpc_commit_recovered(self, conn, dsn, tpc):
         xid = conn.xid(1, "gtrid", "bqual")
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
 
         conn.tpc_begin(xid)
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = conn.cursor()
         cur.execute("insert into test_tpc values ('test_tpc_commit_rec')")
@@ -71,20 +72,20 @@ class TestTPC:
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
-        conn = psycopg.connect(dsn)
-        xid = conn.xid(1, "gtrid", "bqual")
-        conn.tpc_commit(xid)
+        with psycopg.connect(dsn) as conn:
+            xid = conn.xid(1, "gtrid", "bqual")
+            conn.tpc_commit(xid)
+            assert conn.info.transaction_status == TransactionStatus.IDLE
 
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 1
 
     def test_tpc_rollback(self, conn, tpc):
         xid = conn.xid(1, "gtrid", "bqual")
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
 
         conn.tpc_begin(xid)
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = conn.cursor()
         cur.execute("insert into test_tpc values ('test_tpc_rollback')")
@@ -92,21 +93,21 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         conn.tpc_prepare()
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
         conn.tpc_rollback()
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 0
 
     def test_tpc_rollback_one_phase(self, conn, tpc):
         xid = conn.xid(1, "gtrid", "bqual")
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
 
         conn.tpc_begin(xid)
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = conn.cursor()
         cur.execute("insert into test_tpc values ('test_tpc_rollback_1p')")
@@ -114,16 +115,16 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         conn.tpc_rollback()
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 0
 
     def test_tpc_rollback_recovered(self, conn, dsn, tpc):
         xid = conn.xid(1, "gtrid", "bqual")
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
 
         conn.tpc_begin(xid)
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = conn.cursor()
         cur.execute("insert into test_tpc values ('test_tpc_commit_rec')")
@@ -135,24 +136,24 @@ class TestTPC:
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
-        conn = psycopg.connect(dsn)
-        xid = conn.xid(1, "gtrid", "bqual")
-        conn.tpc_rollback(xid)
+        with psycopg.connect(dsn) as conn:
+            xid = conn.xid(1, "gtrid", "bqual")
+            conn.tpc_rollback(xid)
+            assert conn.info.transaction_status == TransactionStatus.IDLE
 
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 0
 
     def test_status_after_recover(self, conn, tpc):
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
         conn.tpc_recover()
-        assert conn.info.transaction_status == conn.TransactionStatus.IDLE
+        assert conn.info.transaction_status == TransactionStatus.IDLE
 
         cur = conn.cursor()
         cur.execute("select 1")
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
         conn.tpc_recover()
-        assert conn.info.transaction_status == conn.TransactionStatus.INTRANS
+        assert conn.info.transaction_status == TransactionStatus.INTRANS
 
     def test_recovered_xids(self, conn, tpc):
         # insert a few test xns
@@ -210,18 +211,19 @@ class TestTPC:
         conn.tpc_prepare()
         conn.close()
 
-        conn = psycopg.connect(dsn)
-        xids = [
-            x for x in conn.tpc_recover() if x.database == conn.info.dbname
-        ]
-        assert len(xids) == 1
-        xid = xids[0]
+        with psycopg.connect(dsn) as conn:
+            xids = [
+                x for x in conn.tpc_recover() if x.database == conn.info.dbname
+            ]
+
+            assert len(xids) == 1
+            xid = xids[0]
+            conn.tpc_rollback(xid)
+
         assert xid.format_id == fid
         assert xid.gtrid == gtrid
         assert xid.bqual == bqual
 
-        conn.tpc_rollback(xid)
-
     @pytest.mark.parametrize(
         "tid",
         [
@@ -235,28 +237,29 @@ class TestTPC:
         conn.tpc_prepare()
         conn.close()
 
-        conn = psycopg.connect(dsn)
-        xids = [
-            x for x in conn.tpc_recover() if x.database == conn.info.dbname
-        ]
-        assert len(xids) == 1
-        xid = xids[0]
+        with psycopg.connect(dsn) as conn:
+            xids = [
+                x for x in conn.tpc_recover() if x.database == conn.info.dbname
+            ]
+
+            assert len(xids) == 1
+            xid = xids[0]
+            conn.tpc_rollback(xid)
+
         assert xid.format_id is None
         assert xid.gtrid == tid
         assert xid.bqual is None
 
-        conn.tpc_rollback(xid)
-
     def test_xid_unicode(self, conn, dsn, tpc):
         x1 = conn.xid(10, "uni", "code")
         conn.tpc_begin(x1)
         conn.tpc_prepare()
         conn.close()
 
-        conn = psycopg.connect(dsn)
-        xid = [
-            x for x in conn.tpc_recover() if x.database == conn.info.dbname
-        ][0]
+        with psycopg.connect(dsn) as conn:
+            xid = [
+                x for x in conn.tpc_recover() if x.database == conn.info.dbname
+            ][0]
         assert 10 == xid.format_id
         assert "uni" == xid.gtrid
         assert "code" == xid.bqual
@@ -272,10 +275,11 @@ class TestTPC:
         conn.tpc_prepare()
         conn.close()
 
-        conn = psycopg.connect(dsn)
-        xid = [
-            x for x in conn.tpc_recover() if x.database == conn.info.dbname
-        ][0]
+        with psycopg.connect(dsn) as conn:
+            xid = [
+                x for x in conn.tpc_recover() if x.database == conn.info.dbname
+            ][0]
+
         assert xid.format_id is None
         assert xid.gtrid == "transaction-id"
         assert xid.bqual is None
@@ -292,9 +296,10 @@ class TestTPC:
         conn.tpc_prepare()
         conn.close()
 
-        conn = psycopg.connect(dsn)
-        xids = conn.tpc_recover()
-        xid = [x for x in xids if x.database == conn.info.dbname][0]
+        with psycopg.connect(dsn) as conn:
+            xids = conn.tpc_recover()
+            xid = [x for x in xids if x.database == conn.info.dbname][0]
+
         assert xid.format_id is None
         assert xid.gtrid == "dict-connection"
         assert xid.bqual is None
index 76aa6459bbd2d1475eb41e717714c095951ad1c6..6a80ecebfbfdb8de13b4ccdbffdd4c8332d81fef 100644 (file)
@@ -1,6 +1,7 @@
 import pytest
 
 import psycopg
+from psycopg.pq import TransactionStatus
 
 pytestmark = [pytest.mark.asyncio]
 
@@ -20,10 +21,10 @@ async def test_tpc_disabled(aconn):
 class TestTPC:
     async def test_tpc_commit(self, aconn, tpc):
         xid = aconn.xid(1, "gtrid", "bqual")
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
 
         await aconn.tpc_begin(xid)
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = aconn.cursor()
         await cur.execute("insert into test_tpc values ('test_tpc_commit')")
@@ -31,21 +32,21 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         await aconn.tpc_prepare()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
         await aconn.tpc_commit()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 1
 
     async def test_tpc_commit_one_phase(self, aconn, tpc):
         xid = aconn.xid(1, "gtrid", "bqual")
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
 
         await aconn.tpc_begin(xid)
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = aconn.cursor()
         await cur.execute("insert into test_tpc values ('test_tpc_commit_1p')")
@@ -53,16 +54,16 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         await aconn.tpc_commit()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 1
 
     async def test_tpc_commit_recovered(self, aconn, dsn, tpc):
         xid = aconn.xid(1, "gtrid", "bqual")
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
 
         await aconn.tpc_begin(xid)
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = aconn.cursor()
         await cur.execute(
@@ -76,20 +77,20 @@ class TestTPC:
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
-        aconn = await psycopg.AsyncConnection.connect(dsn)
-        xid = aconn.xid(1, "gtrid", "bqual")
-        await aconn.tpc_commit(xid)
+        async with await psycopg.AsyncConnection.connect(dsn) as aconn:
+            xid = aconn.xid(1, "gtrid", "bqual")
+            await aconn.tpc_commit(xid)
+            assert aconn.info.transaction_status == TransactionStatus.IDLE
 
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 1
 
     async def test_tpc_rollback(self, aconn, tpc):
         xid = aconn.xid(1, "gtrid", "bqual")
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
 
         await aconn.tpc_begin(xid)
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = aconn.cursor()
         await cur.execute("insert into test_tpc values ('test_tpc_rollback')")
@@ -97,21 +98,21 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         await aconn.tpc_prepare()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
         await aconn.tpc_rollback()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 0
 
     async def test_tpc_rollback_one_phase(self, aconn, tpc):
         xid = aconn.xid(1, "gtrid", "bqual")
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
 
         await aconn.tpc_begin(xid)
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = aconn.cursor()
         await cur.execute(
@@ -121,16 +122,16 @@ class TestTPC:
         assert tpc.count_test_records() == 0
 
         await aconn.tpc_rollback()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 0
 
     async def test_tpc_rollback_recovered(self, aconn, dsn, tpc):
         xid = aconn.xid(1, "gtrid", "bqual")
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
 
         await aconn.tpc_begin(xid)
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
 
         cur = aconn.cursor()
         await cur.execute(
@@ -144,24 +145,24 @@ class TestTPC:
         assert tpc.count_xacts() == 1
         assert tpc.count_test_records() == 0
 
-        aconn = await psycopg.AsyncConnection.connect(dsn)
-        xid = aconn.xid(1, "gtrid", "bqual")
-        await aconn.tpc_rollback(xid)
+        async with await psycopg.AsyncConnection.connect(dsn) as aconn:
+            xid = aconn.xid(1, "gtrid", "bqual")
+            await aconn.tpc_rollback(xid)
+            assert aconn.info.transaction_status == TransactionStatus.IDLE
 
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
         assert tpc.count_xacts() == 0
         assert tpc.count_test_records() == 0
 
     async def test_status_after_recover(self, aconn, tpc):
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
         await aconn.tpc_recover()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.IDLE
+        assert aconn.info.transaction_status == TransactionStatus.IDLE
 
         cur = aconn.cursor()
         await cur.execute("select 1")
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
         await aconn.tpc_recover()
-        assert aconn.info.transaction_status == aconn.TransactionStatus.INTRANS
+        assert aconn.info.transaction_status == TransactionStatus.INTRANS
 
     async def test_recovered_xids(self, aconn, tpc):
         # insert a few test xns
@@ -219,20 +220,20 @@ class TestTPC:
         await aconn.tpc_prepare()
         await aconn.close()
 
-        aconn = await psycopg.AsyncConnection.connect(dsn)
-        xids = [
-            x
-            for x in await aconn.tpc_recover()
-            if x.database == aconn.info.dbname
-        ]
-        assert len(xids) == 1
-        xid = xids[0]
+        async with await psycopg.AsyncConnection.connect(dsn) as aconn:
+            xids = [
+                x
+                for x in await aconn.tpc_recover()
+                if x.database == aconn.info.dbname
+            ]
+            assert len(xids) == 1
+            xid = xids[0]
+            await aconn.tpc_rollback(xid)
+
         assert xid.format_id == fid
         assert xid.gtrid == gtrid
         assert xid.bqual == bqual
 
-        await aconn.tpc_rollback(xid)
-
     @pytest.mark.parametrize(
         "tid",
         [
@@ -246,32 +247,33 @@ class TestTPC:
         await aconn.tpc_prepare()
         await aconn.close()
 
-        aconn = await psycopg.AsyncConnection.connect(dsn)
-        xids = [
-            x
-            for x in await aconn.tpc_recover()
-            if x.database == aconn.info.dbname
-        ]
-        assert len(xids) == 1
-        xid = xids[0]
+        async with await psycopg.AsyncConnection.connect(dsn) as aconn:
+            xids = [
+                x
+                for x in await aconn.tpc_recover()
+                if x.database == aconn.info.dbname
+            ]
+            assert len(xids) == 1
+            xid = xids[0]
+            await aconn.tpc_rollback(xid)
+
         assert xid.format_id is None
         assert xid.gtrid == tid
         assert xid.bqual is None
 
-        await aconn.tpc_rollback(xid)
-
     async def test_xid_unicode(self, aconn, dsn, tpc):
         x1 = aconn.xid(10, "uni", "code")
         await aconn.tpc_begin(x1)
         await aconn.tpc_prepare()
         await aconn.close()
 
-        aconn = await psycopg.AsyncConnection.connect(dsn)
-        xid = [
-            x
-            for x in await aconn.tpc_recover()
-            if x.database == aconn.info.dbname
-        ][0]
+        async with await psycopg.AsyncConnection.connect(dsn) as aconn:
+            xid = [
+                x
+                for x in await aconn.tpc_recover()
+                if x.database == aconn.info.dbname
+            ][0]
+
         assert 10 == xid.format_id
         assert "uni" == xid.gtrid
         assert "code" == xid.bqual
@@ -287,12 +289,13 @@ class TestTPC:
         await aconn.tpc_prepare()
         await aconn.close()
 
-        aconn = await psycopg.AsyncConnection.connect(dsn)
-        xid = [
-            x
-            for x in await aconn.tpc_recover()
-            if x.database == aconn.info.dbname
-        ][0]
+        async with await psycopg.AsyncConnection.connect(dsn) as aconn:
+            xid = [
+                x
+                for x in await aconn.tpc_recover()
+                if x.database == aconn.info.dbname
+            ][0]
+
         assert xid.format_id is None
         assert xid.gtrid == "transaction-id"
         assert xid.bqual is None
@@ -309,9 +312,10 @@ class TestTPC:
         await aconn.tpc_prepare()
         await aconn.close()
 
-        aconn = await psycopg.AsyncConnection.connect(dsn)
-        xids = await aconn.tpc_recover()
-        xid = [x for x in xids if x.database == aconn.info.dbname][0]
+        async with await psycopg.AsyncConnection.connect(dsn) as aconn:
+            xids = await aconn.tpc_recover()
+            xid = [x for x in xids if x.database == aconn.info.dbname][0]
+
         assert xid.format_id is None
         assert xid.gtrid == "dict-connection"
         assert xid.bqual is None