return cls(pgconn_ptr)
def connect_poll(self) -> PollingStatus:
- rv = impl.PQconnectPoll(self.pgconn_ptr)
+ rv = self._call_int(impl.PQconnectPoll)
return PollingStatus(rv)
def finish(self) -> None:
impl.PQconninfoFree(opts)
def reset(self) -> None:
+ if not self.pgconn_ptr:
+ raise PQerror("the connection is no more available")
impl.PQreset(self.pgconn_ptr)
def reset_start(self) -> None:
raise PQerror("couldn't reset connection")
def reset_poll(self) -> PollingStatus:
- rv = impl.PQresetPoll(self.pgconn_ptr)
+ rv = self._call_int(impl.PQresetPoll)
return PollingStatus(rv)
@classmethod
assert conn.status == pq.ConnStatus.OK
+ conn.finish()
+ with pytest.raises(psycopg3.OperationalError):
+ conn.connect_poll()
+
def test_connect_async_bad(pq, dsn):
conn = pq.PGconn.connect_start(b"dbname=psycopg3_test_not_for_real")
pgconn.reset()
assert pgconn.status == pq.ConnStatus.OK
- # doesn't work after finish, but doesn't die either
pgconn.finish()
- pgconn.reset()
+ with pytest.raises(psycopg3.OperationalError):
+ pgconn.reset()
+
assert pgconn.status == pq.ConnStatus.BAD
with pytest.raises(psycopg3.OperationalError):
pgconn.reset_start()
- assert pgconn.reset_poll() == 0
+ with pytest.raises(psycopg3.OperationalError):
+ pgconn.reset_poll()
def test_ping(pq, dsn):