]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Add tests to verify row_factory works with server-side cursors too
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 11 Feb 2021 20:59:03 +0000 (21:59 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 11 Feb 2021 20:59:34 +0000 (21:59 +0100)
tests/test_server_cursor.py
tests/test_server_cursor_async.py

index 551579e95ffedebc58a0dd62ab5d814a4f98190a..6e908a4078872757a7124a3d16199d9b7c074ab4 100644 (file)
@@ -150,6 +150,16 @@ def test_nextset(conn):
         assert not cur.nextset()
 
 
+def test_row_factory(conn):
+    def my_row_factory(cur):
+        return lambda values: [-v for v in values]
+
+    cur = conn.cursor("foo", row_factory=my_row_factory)
+    cur.execute("select generate_series(1, 3)")
+    r = cur.fetchall()
+    assert r == [[-1], [-2], [-3]]
+
+
 def test_rownumber(conn):
     cur = conn.cursor("foo")
     assert cur.rownumber is None
index fa2d9425cdcc4f67f35c9630550a7e480d3165d6..5625cd885ea7538fad43139732524f2a620d964a 100644 (file)
@@ -152,6 +152,16 @@ async def test_nextset(aconn):
         assert not cur.nextset()
 
 
+async def test_row_factory(aconn):
+    def my_row_factory(cur):
+        return lambda values: [-v for v in values]
+
+    cur = aconn.cursor("foo", row_factory=my_row_factory)
+    await cur.execute("select generate_series(1, 3)")
+    r = await cur.fetchall()
+    assert r == [[-1], [-2], [-3]]
+
+
 async def test_rownumber(aconn):
     cur = aconn.cursor("foo")
     assert cur.rownumber is None