dsn = request.config.getoption("--test-dsn")
if not dsn:
pytest.skip("skipping test as no --test-dsn")
- return dsn.encode("utf8")
+ return dsn
@pytest.fixture
def pgconn(pq, dsn):
"""Return a PGconn connection open to `--test-dsn`."""
- return pq.PGconn.connect(dsn)
+ return pq.PGconn.connect(dsn.encode("utf8"))
def test_connectdb(pq, dsn):
- conn = pq.PGconn.connect(dsn)
+ conn = pq.PGconn.connect(dsn.encode("utf8"))
assert conn.status == pq.ConnStatus.CONNECTION_OK, conn.error_message
def test_connect_async(pq, dsn):
- conn = pq.PGconn.connect_start(dsn)
+ conn = pq.PGconn.connect_start(dsn.encode("utf8"))
while 1:
assert conn.status != pq.ConnStatus.CONNECTION_BAD
rv = conn.connect_poll()
assert dbname.dispatcher == b""
assert dbname.dispsize == 20
- parsed = pq.Conninfo.parse(dsn)
+ parsed = pq.Conninfo.parse(dsn.encode("utf8"))
name = [o.val for o in parsed if o.keyword == b"dbname"][0]
assert dbname.val == name
def test_ping(pq, dsn):
- rv = pq.PGconn.ping(dsn)
+ rv = pq.PGconn.ping(dsn.encode("utf8"))
assert rv == pq.Ping.PQPING_OK
rv = pq.PGconn.ping(b"port=99999")
def test_parameter_status(pq, dsn, tempenv):
tempenv["PGAPPNAME"] = "psycopg3 tests"
- pgconn = pq.PGconn.connect(dsn)
+ pgconn = pq.PGconn.connect(dsn.encode("utf8"))
assert pgconn.parameter_status(b"application_name") == b"psycopg3 tests"
assert pgconn.parameter_status(b"wat") is None
# Note that the server may still need a password passed via pgpass
# so it may be that has_password is false but still a password was
# requested by the server and passed by libpq.
- info = pq.Conninfo.parse(dsn)
+ info = pq.Conninfo.parse(dsn.encode("utf8"))
has_password = (
"PGPASSWORD" in tempenv
or [i for i in info if i.keyword == b"password"][0].val is not None