cdef class PGconn:
cdef impl.PGconn* pgconn_ptr
+ cdef object __weakref__
@staticmethod
cdef PGconn _from_ptr(impl.PGconn *ptr)
+import gc
import os
import logging
+import weakref
from select import select
import pytest
assert pgconn.status == pq.ConnStatus.BAD
+def test_weakref(pq, dsn):
+ conn = pq.PGconn.connect(dsn.encode("utf8"))
+ w = weakref.ref(conn)
+ conn.finish()
+ del conn
+ gc.collect()
+ assert w() is None
+
+
def test_info(pq, dsn, pgconn):
info = pgconn.info
assert len(info) > 20
+import gc
import pytest
import logging
+import weakref
import psycopg3
from psycopg3 import AsyncConnection
assert aconn.status == aconn.ConnStatus.BAD
+def test_weakref(dsn, loop):
+ conn = loop.run_until_complete(psycopg3.AsyncConnection.connect(dsn))
+ w = weakref.ref(conn)
+ loop.run_until_complete(conn.close())
+ del conn
+ gc.collect()
+ assert w() is None
+
+
def test_commit(loop, aconn):
aconn.pgconn.exec_(b"drop table if exists foo")
aconn.pgconn.exec_(b"create table foo (id int primary key)")
+import gc
import pytest
+import weakref
+
import psycopg3
assert cur.closed
+def test_weakref(aconn, loop):
+ cur = aconn.cursor()
+ w = weakref.ref(cur)
+ loop.run_until_complete(cur.close())
+ del cur
+ gc.collect()
+ assert w() is None
+
+
def test_status(aconn, loop):
cur = aconn.cursor()
assert cur.status is None
+import gc
import pytest
import logging
+import weakref
import psycopg3
from psycopg3 import Connection
assert conn.status == conn.ConnStatus.BAD
+def test_weakref(dsn):
+ conn = psycopg3.connect(dsn)
+ w = weakref.ref(conn)
+ conn.close()
+ del conn
+ gc.collect()
+ assert w() is None
+
+
def test_commit(conn):
conn.pgconn.exec_(b"drop table if exists foo")
conn.pgconn.exec_(b"create table foo (id int primary key)")
+import gc
import pytest
+import weakref
+
import psycopg3
assert cur.closed
+def test_weakref(conn):
+ cur = conn.cursor()
+ w = weakref.ref(cur)
+ cur.close()
+ del cur
+ gc.collect()
+ assert w() is None
+
+
def test_status(conn):
cur = conn.cursor()
assert cur.status is None