]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
test(crdb): fix conninfo tests with crdb
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Tue, 24 May 2022 23:03:29 +0000 (01:03 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Tue, 12 Jul 2022 11:58:34 +0000 (12:58 +0100)
tests/fix_db.py
tests/test_conninfo.py

index a069e9d95e0d8d75b06e7d6878b0a651736b6a37..46273270164ac1c98939b39d24135a13902e73fd 100644 (file)
@@ -152,11 +152,7 @@ def conn(dsn, request, tracefile):
     """Return a `Connection` connected to the ``--test-dsn`` database."""
     check_connection_version(request.node)
 
-    cls = psycopg.Connection
-    if crdb_version:
-        cls = CrdbConnection
-
-    conn = cls.connect(dsn)
+    conn = connection_class().connect(dsn)
     with maybe_trace(conn.pgconn, tracefile, request.function):
         yield conn
     conn.close()
@@ -205,6 +201,14 @@ async def apipeline(request, aconn):
         yield None
 
 
+def connection_class():
+    cls = psycopg.Connection
+    if crdb_version:
+        cls = CrdbConnection
+
+    return cls
+
+
 @pytest.fixture(scope="session")
 def svcconn(session_dsn):
     """
index a94a101bd7f0ededabc61b523cc089eb3720cd41..70571d2862808f6e67327e1b708020c4b97b1262 100644 (file)
@@ -10,6 +10,7 @@ from psycopg.conninfo import make_conninfo, conninfo_to_dict, ConnectionInfo
 from psycopg.conninfo import resolve_hostaddr_async
 from psycopg._encodings import pg2pyenc
 
+from .fix_db import connection_class
 from .fix_crdb import crdb_encoding
 
 snowman = "\u2603"
@@ -148,11 +149,11 @@ class TestConnectionInfo:
         dsn.pop("application_name", None)
 
         monkeypatch.delenv("PGAPPNAME", raising=False)
-        with psycopg.connect(**dsn) as conn:
+        with connection_class().connect(**dsn) as conn:
             assert "application_name" not in conn.info.get_parameters()
 
         monkeypatch.setenv("PGAPPNAME", "hello test")
-        with psycopg.connect(**dsn) as conn:
+        with connection_class().connect(**dsn) as conn:
             assert conn.info.get_parameters()["application_name"] == "hello test"
 
     def test_dsn_env(self, dsn, monkeypatch):
@@ -160,11 +161,11 @@ class TestConnectionInfo:
         dsn.pop("application_name", None)
 
         monkeypatch.delenv("PGAPPNAME", raising=False)
-        with psycopg.connect(**dsn) as conn:
+        with connection_class().connect(**dsn) as conn:
             assert "application_name=" not in conn.info.dsn
 
         monkeypatch.setenv("PGAPPNAME", "hello test")
-        with psycopg.connect(**dsn) as conn:
+        with connection_class().connect(**dsn) as conn:
             assert "application_name='hello test'" in conn.info.dsn
 
     def test_status(self, conn):
@@ -296,7 +297,7 @@ class TestConnectionInfo:
     )
     def test_encoding_env_var(self, dsn, monkeypatch, enc, out, codec):
         monkeypatch.setenv("PGCLIENTENCODING", enc)
-        with psycopg.connect(dsn) as conn:
+        with connection_class().connect(dsn) as conn:
             clienc = conn.info.parameter_status("client_encoding")
             assert clienc
             if conn.info.vendor == "PostgreSQL":