import psycopg
import psycopg.generators
from psycopg import pq
+from psycopg.conninfo import make_conninfo
if TYPE_CHECKING:
from psycopg.pq.abc import PGcancelConn, PGconn
assert conn.status == pq.ConnStatus.OK, conn.error_message
-def test_connectdb_error():
- conn = pq.PGconn.connect(b"dbname=psycopg_test_not_for_real")
+def test_connectdb_error(dsn):
+ conn = pq.PGconn.connect(make_conninfo(dsn, dbname="nosuchdb").encode())
assert conn.status == pq.ConnStatus.BAD
rv = pq.PGconn.ping(dsn.encode())
assert rv == pq.Ping.OK
- rv = pq.PGconn.ping(b"port=9999")
+ rv = pq.PGconn.ping(make_conninfo(dsn, port=9999, connect_timeout=3).encode())
assert rv == pq.Ping.NO_RESPONSE
conn.close()
-def test_connect_bad(conn_cls):
+def test_connect_bad(conn_cls, dsn):
with pytest.raises(psycopg.OperationalError):
- conn_cls.connect("dbname=nosuchdb")
+ conn_cls.connect(dsn, dbname="nosuchdb")
@pytest.mark.slow
await conn.close()
-async def test_connect_bad(aconn_cls):
+async def test_connect_bad(aconn_cls, dsn):
with pytest.raises(psycopg.OperationalError):
- await aconn_cls.connect("dbname=nosuchdb")
+ await aconn_cls.connect(dsn, dbname="nosuchdb")
@pytest.mark.slow
assert pexc.sqlstate == code
-def test_pgconn_error(conn_cls):
+def test_pgconn_error(conn_cls, dsn):
with pytest.raises(psycopg.OperationalError) as excinfo:
- conn_cls.connect("dbname=nosuchdb")
+ conn_cls.connect(dsn, dbname="nosuchdb")
exc = excinfo.value
assert exc.pgconn
assert exc.pgconn.db == b"nosuchdb"
-def test_pgconn_error_pickle(conn_cls):
+def test_pgconn_error_pickle(conn_cls, dsn):
with pytest.raises(psycopg.OperationalError) as excinfo:
- conn_cls.connect("dbname=nosuchdb")
+ conn_cls.connect(dsn, dbname="nosuchdb")
exc = pickle.loads(pickle.dumps(excinfo.value))
assert exc.pgconn is None
dts = json.loads(rv.stdout)
for dt in dts:
- assert TICK <= dt < TICK * 1.1
+ assert TICK <= dt < TICK * 1.2
@pytest.mark.skipif("not psycopg._cmodule._psycopg")
import psycopg
from psycopg import generators, waiting
from psycopg.pq import ConnStatus, ExecStatus
+from psycopg.conninfo import make_conninfo
skip_if_not_linux = pytest.mark.skipif(
not sys.platform.startswith("linux"), reason="non-Linux platform"
def test_wait_conn_bad(dsn):
- gen = generators.connect("dbname=nosuchdb")
+ gen = generators.connect(make_conninfo(dsn, dbname="nosuchdb"))
with pytest.raises(psycopg.OperationalError):
waiting.wait_conn(gen)
@pytest.mark.anyio
async def test_wait_conn_async_bad(dsn):
- gen = generators.connect("dbname=nosuchdb")
+ gen = generators.connect(make_conninfo(dsn, dbname="nosuchdb"))
with pytest.raises(psycopg.OperationalError):
await waiting.wait_conn_async(gen)