]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
test: reproduce the error in TypeInfo.fetch() in sql_ascii connection
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 1 Feb 2023 00:39:51 +0000 (01:39 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 4 Feb 2023 09:48:01 +0000 (10:48 +0100)
Reported in #503.

tests/test_typeinfo.py

index 56dab053dabafb706294c93bf10f12aef355d6fc..063c577627bad40b19182a00a4728f28da5aaa2c 100644 (file)
@@ -9,10 +9,18 @@ from psycopg.types.enum import EnumInfo
 from psycopg.types.multirange import MultirangeInfo
 from psycopg.types.range import RangeInfo
 
+from .fix_crdb import crdb_encoding
+
 
 @pytest.mark.parametrize("name", ["text", sql.Identifier("text")])
 @pytest.mark.parametrize("status", ["IDLE", "INTRANS"])
-def test_fetch(conn, name, status):
+@pytest.mark.parametrize(
+    "encoding", ["utf8", crdb_encoding("latin1"), crdb_encoding("sql_ascii")]
+)
+def test_fetch(conn, name, status, encoding):
+    with conn.transaction():
+        conn.execute("select set_config('client_encoding', %s, false)", [encoding])
+
     status = getattr(TransactionStatus, status)
     if status == TransactionStatus.INTRANS:
         conn.execute("select 1")
@@ -33,7 +41,15 @@ def test_fetch(conn, name, status):
 @pytest.mark.asyncio
 @pytest.mark.parametrize("name", ["text", sql.Identifier("text")])
 @pytest.mark.parametrize("status", ["IDLE", "INTRANS"])
-async def test_fetch_async(aconn, name, status):
+@pytest.mark.parametrize(
+    "encoding", ["utf8", crdb_encoding("latin1"), crdb_encoding("sql_ascii")]
+)
+async def test_fetch_async(aconn, name, status, encoding):
+    async with aconn.transaction():
+        await aconn.execute(
+            "select set_config('client_encoding', %s, false)", [encoding]
+        )
+
     status = getattr(TransactionStatus, status)
     if status == TransactionStatus.INTRANS:
         await aconn.execute("select 1")