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)
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)