Skip to content

Commit 022ef15

Browse files
Use context managers in integration tests to prevent resource leaks
Wrap connections in `with` blocks so they are properly closed even if assertions fail mid-test. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 9b48767 commit 022ef15

File tree

1 file changed

+31
-44
lines changed

1 file changed

+31
-44
lines changed

tests/integration/test_returning.py

Lines changed: 31 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -9,56 +9,43 @@
99
class TestReturning:
1010
def test_insert_returning(self, cluster_address: str) -> None:
1111
"""INSERT ... RETURNING should return rows via query path."""
12-
conn = connect(cluster_address, database="test_returning")
13-
cursor = conn.cursor()
14-
15-
cursor.execute("CREATE TABLE ret_test (id INTEGER PRIMARY KEY, name TEXT)")
16-
cursor.execute("INSERT INTO ret_test (id, name) VALUES (1, 'alice') RETURNING id, name")
17-
row = cursor.fetchone()
18-
assert row == (1, "alice")
19-
20-
cursor.execute("DROP TABLE ret_test")
21-
conn.close()
12+
with connect(cluster_address, database="test_returning") as conn:
13+
cursor = conn.cursor()
14+
cursor.execute("CREATE TABLE ret_test (id INTEGER PRIMARY KEY, name TEXT)")
15+
cursor.execute("INSERT INTO ret_test (id, name) VALUES (1, 'alice') RETURNING id, name")
16+
row = cursor.fetchone()
17+
assert row == (1, "alice")
18+
cursor.execute("DROP TABLE ret_test")
2219

2320
def test_insert_returning_multiple(self, cluster_address: str) -> None:
2421
"""INSERT ... RETURNING should support fetching all returned rows."""
25-
conn = connect(cluster_address, database="test_returning_multi")
26-
cursor = conn.cursor()
27-
28-
cursor.execute("CREATE TABLE ret_multi (id INTEGER PRIMARY KEY, val TEXT)")
29-
cursor.execute("INSERT INTO ret_multi (id, val) VALUES (1, 'a') RETURNING id, val")
30-
assert cursor.fetchone() == (1, "a")
31-
32-
cursor.execute("INSERT INTO ret_multi (id, val) VALUES (2, 'b') RETURNING val")
33-
assert cursor.fetchone() == ("b",)
34-
35-
cursor.execute("DROP TABLE ret_multi")
36-
conn.close()
22+
with connect(cluster_address, database="test_returning_multi") as conn:
23+
cursor = conn.cursor()
24+
cursor.execute("CREATE TABLE ret_multi (id INTEGER PRIMARY KEY, val TEXT)")
25+
cursor.execute("INSERT INTO ret_multi (id, val) VALUES (1, 'a') RETURNING id, val")
26+
assert cursor.fetchone() == (1, "a")
27+
cursor.execute("INSERT INTO ret_multi (id, val) VALUES (2, 'b') RETURNING val")
28+
assert cursor.fetchone() == ("b",)
29+
cursor.execute("DROP TABLE ret_multi")
3730

3831
def test_delete_returning(self, cluster_address: str) -> None:
3932
"""DELETE ... RETURNING should return deleted rows."""
40-
conn = connect(cluster_address, database="test_del_returning")
41-
cursor = conn.cursor()
42-
43-
cursor.execute("CREATE TABLE del_ret (id INTEGER PRIMARY KEY, name TEXT)")
44-
cursor.execute("INSERT INTO del_ret (id, name) VALUES (1, 'alice')")
45-
cursor.execute("DELETE FROM del_ret WHERE id = 1 RETURNING id, name")
46-
row = cursor.fetchone()
47-
assert row == (1, "alice")
48-
49-
cursor.execute("DROP TABLE del_ret")
50-
conn.close()
33+
with connect(cluster_address, database="test_del_returning") as conn:
34+
cursor = conn.cursor()
35+
cursor.execute("CREATE TABLE del_ret (id INTEGER PRIMARY KEY, name TEXT)")
36+
cursor.execute("INSERT INTO del_ret (id, name) VALUES (1, 'alice')")
37+
cursor.execute("DELETE FROM del_ret WHERE id = 1 RETURNING id, name")
38+
row = cursor.fetchone()
39+
assert row == (1, "alice")
40+
cursor.execute("DROP TABLE del_ret")
5141

5242
def test_update_returning(self, cluster_address: str) -> None:
5343
"""UPDATE ... RETURNING should return updated rows."""
54-
conn = connect(cluster_address, database="test_upd_returning")
55-
cursor = conn.cursor()
56-
57-
cursor.execute("CREATE TABLE upd_ret (id INTEGER PRIMARY KEY, name TEXT)")
58-
cursor.execute("INSERT INTO upd_ret (id, name) VALUES (1, 'alice')")
59-
cursor.execute("UPDATE upd_ret SET name = 'bob' WHERE id = 1 RETURNING id, name")
60-
row = cursor.fetchone()
61-
assert row == (1, "bob")
62-
63-
cursor.execute("DROP TABLE upd_ret")
64-
conn.close()
44+
with connect(cluster_address, database="test_upd_returning") as conn:
45+
cursor = conn.cursor()
46+
cursor.execute("CREATE TABLE upd_ret (id INTEGER PRIMARY KEY, name TEXT)")
47+
cursor.execute("INSERT INTO upd_ret (id, name) VALUES (1, 'alice')")
48+
cursor.execute("UPDATE upd_ret SET name = 'bob' WHERE id = 1 RETURNING id, name")
49+
row = cursor.fetchone()
50+
assert row == (1, "bob")
51+
cursor.execute("DROP TABLE upd_ret")

0 commit comments

Comments
 (0)