]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Add scrollable tests
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 10 Feb 2021 01:05:31 +0000 (02:05 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 10 Feb 2021 01:05:31 +0000 (02:05 +0100)
tests/test_named_cursor.py
tests/test_named_cursor_async.py

index 2961d96cba015df3ad0744d20dd95284443d22d9..252bb88b6ac4515092d4f2f3dd44c51ef0c29803 100644 (file)
@@ -148,3 +148,21 @@ def test_scroll(conn):
 
     with pytest.raises(ValueError):
         cur.scroll(9, mode="wat")
+
+
+def test_scrollable(conn):
+    curs = conn.cursor("foo")
+    curs.execute("select generate_series(0, 5)")
+    curs.scroll(5)
+    for i in range(4, -1, -1):
+        curs.scroll(-1)
+        assert i == curs.fetchone()[0]
+        curs.scroll(-1)
+
+
+def test_non_scrollable(conn):
+    curs = conn.cursor("foo")
+    curs.execute("select generate_series(0, 5)", scrollable=False)
+    curs.scroll(5)
+    with pytest.raises(conn.OperationalError):
+        curs.scroll(-1)
index 1dd643b41b8a552c5f8d83c6af5db5d54190f70a..568b3120126ec25aeae569c83962a5f0a86a2c5e 100644 (file)
@@ -155,3 +155,21 @@ async def test_scroll(aconn):
 
     with pytest.raises(ValueError):
         await cur.scroll(9, mode="wat")
+
+
+async def test_scrollable(aconn):
+    curs = await aconn.cursor("foo")
+    await curs.execute("select generate_series(0, 5)")
+    await curs.scroll(5)
+    for i in range(4, -1, -1):
+        await curs.scroll(-1)
+        assert i == (await curs.fetchone())[0]
+        await curs.scroll(-1)
+
+
+async def test_non_scrollable(aconn):
+    curs = await aconn.cursor("foo")
+    await curs.execute("select generate_series(0, 5)", scrollable=False)
+    await curs.scroll(5)
+    with pytest.raises(aconn.OperationalError):
+        await curs.scroll(-1)