From 13b82fd9c67492fe4828c521fc6ee7170d7b9bc7 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Mon, 2 Jun 2025 13:43:38 +0100 Subject: [PATCH] test: skip tests connecting to non-existing dbs for CRDB For CRDB, every database exists. --- tests/fix_crdb.py | 4 ++++ tests/pq/test_pgconn.py | 3 +++ tests/test_connection.py | 2 ++ tests/test_connection_async.py | 2 ++ tests/test_errors.py | 4 +++- tests/test_waiting.py | 4 ++++ 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/fix_crdb.py b/tests/fix_crdb.py index 60d721c21..afcc6af12 100644 --- a/tests/fix_crdb.py +++ b/tests/fix_crdb.py @@ -79,6 +79,10 @@ def crdb_scs_off(*args): return skip_crdb(*args, reason="standard_conforming_strings=off") +def crdb_anydb(*args): + return skip_crdb(*args, reason="can connect to any db name") + + # mapping from reason description to ticket number _crdb_reasons = { "2-phase commit": 22329, diff --git a/tests/pq/test_pgconn.py b/tests/pq/test_pgconn.py index f6f7f2e93..f14658c39 100644 --- a/tests/pq/test_pgconn.py +++ b/tests/pq/test_pgconn.py @@ -18,6 +18,8 @@ import psycopg.generators from psycopg import pq from psycopg.conninfo import make_conninfo +from ..fix_crdb import crdb_anydb + if TYPE_CHECKING: from psycopg.pq.abc import PGcancelConn, PGconn @@ -50,6 +52,7 @@ def test_connectdb(dsn): assert conn.status == pq.ConnStatus.OK, conn.error_message +@crdb_anydb def test_connectdb_error(dsn): conn = pq.PGconn.connect(make_conninfo(dsn, dbname="nosuchdb").encode()) assert conn.status == pq.ConnStatus.BAD diff --git a/tests/test_connection.py b/tests/test_connection.py index 50c27ef6a..90aa0ddf3 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -18,6 +18,7 @@ from psycopg.rows import tuple_row from psycopg.conninfo import conninfo_to_dict, timeout_from_conninfo from .acompat import is_async, skip_async, skip_sync, sleep +from .fix_crdb import crdb_anydb from .test_adapt import make_bin_dumper, make_dumper from ._test_cursor import my_row_factory from ._test_connection import testctx # noqa: F401 # fixture @@ -34,6 +35,7 @@ def test_connect(conn_cls, dsn): conn.close() +@crdb_anydb def test_connect_bad(conn_cls, dsn): with pytest.raises(psycopg.OperationalError): conn_cls.connect(dsn, dbname="nosuchdb") diff --git a/tests/test_connection_async.py b/tests/test_connection_async.py index ef1efb80b..89af8475a 100644 --- a/tests/test_connection_async.py +++ b/tests/test_connection_async.py @@ -15,6 +15,7 @@ from psycopg.rows import tuple_row from psycopg.conninfo import conninfo_to_dict, timeout_from_conninfo from .acompat import asleep, is_async, skip_async, skip_sync +from .fix_crdb import crdb_anydb from .test_adapt import make_bin_dumper, make_dumper from ._test_cursor import my_row_factory from ._test_connection import testctx # noqa: F401 # fixture @@ -31,6 +32,7 @@ async def test_connect(aconn_cls, dsn): await conn.close() +@crdb_anydb async def test_connect_bad(aconn_cls, dsn): with pytest.raises(psycopg.OperationalError): await aconn_cls.connect(dsn, dbname="nosuchdb") diff --git a/tests/test_errors.py b/tests/test_errors.py index 3c875b0c6..29619d558 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -11,7 +11,7 @@ from psycopg import errors as e from psycopg import pq from .utils import eur -from .fix_crdb import is_crdb +from .fix_crdb import crdb_anydb, is_crdb def test_finishedpgconn(pgconn): @@ -286,6 +286,7 @@ def test_unknown_sqlstate(conn): assert pexc.sqlstate == code +@crdb_anydb def test_pgconn_error(conn_cls, dsn): with pytest.raises(psycopg.OperationalError) as excinfo: conn_cls.connect(dsn, dbname="nosuchdb") @@ -295,6 +296,7 @@ def test_pgconn_error(conn_cls, dsn): assert exc.pgconn.db == b"nosuchdb" +@crdb_anydb def test_pgconn_error_pickle(conn_cls, dsn): with pytest.raises(psycopg.OperationalError) as excinfo: conn_cls.connect(dsn, dbname="nosuchdb") diff --git a/tests/test_waiting.py b/tests/test_waiting.py index fc5130386..3f137135a 100644 --- a/tests/test_waiting.py +++ b/tests/test_waiting.py @@ -10,6 +10,8 @@ from psycopg import generators, waiting from psycopg.pq import ConnStatus, ExecStatus from psycopg.conninfo import make_conninfo +from .fix_crdb import crdb_anydb + skip_if_not_linux = pytest.mark.skipif( not sys.platform.startswith("linux"), reason="non-Linux platform" ) @@ -39,6 +41,7 @@ def test_wait_conn(dsn, timeout): assert conn.status == ConnStatus.OK +@crdb_anydb def test_wait_conn_bad(dsn): gen = generators.connect(make_conninfo(dsn, dbname="nosuchdb")) with pytest.raises(psycopg.OperationalError): @@ -154,6 +157,7 @@ async def test_wait_conn_async(dsn, timeout): assert conn.status == ConnStatus.OK +@crdb_anydb @pytest.mark.anyio async def test_wait_conn_async_bad(dsn): gen = generators.connect(make_conninfo(dsn, dbname="nosuchdb")) -- 2.47.2