diff options
author | Rafi Shamim <rafi@cockroachlabs.com> | 2022-03-28 12:44:50 -0400 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2022-03-28 20:26:23 +0200 |
commit | 3c58e96e1000ef60060fb8139687028cb274838d (patch) | |
tree | afe908df896e6c0a446763593bdff88694a79f03 | |
parent | 626078388a12a20f43f03e630bded46d7da00b75 (diff) | |
download | psycopg2-3c58e96e1000ef60060fb8139687028cb274838d.tar.gz |
Unskip tests that work on CockroachDB v22.1
CockroachDB supports named cursors in v22.1, so more tests pass.
-rwxr-xr-x | tests/test_async.py | 6 | ||||
-rwxr-xr-x | tests/test_cursor.py | 7 | ||||
-rwxr-xr-x | tests/test_extras_dictcursor.py | 28 | ||||
-rwxr-xr-x | tests/test_green.py | 2 | ||||
-rwxr-xr-x | tests/test_with.py | 4 | ||||
-rw-r--r-- | tests/testutils.py | 3 |
6 files changed, 29 insertions, 21 deletions
diff --git a/tests/test_async.py b/tests/test_async.py index ee6651d..dfc7b59 100755 --- a/tests/test_async.py +++ b/tests/test_async.py @@ -390,6 +390,7 @@ class AsyncTests(ConnectingTestCase): # fetching from the correct cursor works self.assertEquals(cur1.fetchone()[0], 1) + @skip_if_crdb("batch statements", version="< 22.1") def test_error(self): cur = self.conn.cursor() cur.execute("insert into table1 values (%s)", (1, )) @@ -402,9 +403,8 @@ class AsyncTests(ConnectingTestCase): # this should fail as well (Postgres behaviour) self.assertRaises(psycopg2.IntegrityError, self.wait, cur) # but this should work - if crdb_version(self.sync_conn) is None: - cur.execute("insert into table1 values (%s)", (2, )) - self.wait(cur) + cur.execute("insert into table1 values (%s)", (2, )) + self.wait(cur) # and the cursor should be usable afterwards cur.execute("insert into table1 values (%s)", (3, )) self.wait(cur) diff --git a/tests/test_cursor.py b/tests/test_cursor.py index 04f535a..48a9e78 100755 --- a/tests/test_cursor.py +++ b/tests/test_cursor.py @@ -412,7 +412,7 @@ class CursorTests(ConnectingTestCase): self.assert_(curs.pgresult_ptr is None) -@skip_if_crdb("named cursor") +@skip_if_crdb("named cursor", version="< 22.1") class NamedCursorTests(ConnectingTestCase): def test_invalid_name(self): curs = self.conn.cursor() @@ -436,6 +436,7 @@ class NamedCursorTests(ConnectingTestCase): curs.execute("insert into withhold values (%s)", (i,)) curs.close() + @skip_if_crdb("cursor with hold") def test_withhold(self): self.assertRaises(psycopg2.ProgrammingError, self.conn.cursor, withhold=True) @@ -460,6 +461,7 @@ class NamedCursorTests(ConnectingTestCase): curs.execute("drop table withhold") self.conn.commit() + @skip_if_crdb("cursor with hold") def test_withhold_no_begin(self): self._create_withhold_table() curs = self.conn.cursor("w", withhold=True) @@ -484,6 +486,7 @@ class NamedCursorTests(ConnectingTestCase): self.assertEqual(self.conn.info.transaction_status, psycopg2.extensions.TRANSACTION_STATUS_IDLE) + @skip_if_crdb("cursor with hold") def test_withhold_autocommit(self): self._create_withhold_table() self.conn.commit() @@ -506,6 +509,7 @@ class NamedCursorTests(ConnectingTestCase): self.assertEqual(self.conn.info.transaction_status, psycopg2.extensions.TRANSACTION_STATUS_IDLE) + @skip_if_crdb("scroll cursor") def test_scrollable(self): self.assertRaises(psycopg2.ProgrammingError, self.conn.cursor, scrollable=True) @@ -679,6 +683,7 @@ class NamedCursorTests(ConnectingTestCase): self.assertRaises((IndexError, psycopg2.ProgrammingError), cur.scroll, 1) + @skip_if_crdb("scroll cursor") @skip_before_postgres(8, 0) def test_scroll_named(self): cur = self.conn.cursor('tmp', scrollable=True) diff --git a/tests/test_extras_dictcursor.py b/tests/test_extras_dictcursor.py index 186daf3..507bc74 100755 --- a/tests/test_extras_dictcursor.py +++ b/tests/test_extras_dictcursor.py @@ -64,7 +64,7 @@ class _DictCursorBase(ConnectingTestCase): class ExtrasDictCursorTests(_DictCursorBase): """Test if DictCursor extension class works.""" - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def testDictConnCursorArgs(self): self.conn.close() self.conn = self.connect(connection_factory=psycopg2.extras.DictConnection) @@ -132,19 +132,19 @@ class ExtrasDictCursorTests(_DictCursorBase): return row self._testWithNamedCursor(getter) - @skip_if_crdb("named cursor") + @skip_if_crdb("greedy cursor") @skip_before_postgres(8, 2) def testDictCursorWithNamedCursorNotGreedy(self): curs = self.conn.cursor('tmp', cursor_factory=psycopg2.extras.DictCursor) self._testNamedCursorNotGreedy(curs) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") @skip_before_postgres(8, 0) def testDictCursorWithNamedCursorIterRowNumber(self): curs = self.conn.cursor('tmp', cursor_factory=psycopg2.extras.DictCursor) self._testIterRowNumber(curs) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def _testWithNamedCursor(self, getter): curs = self.conn.cursor('aname', cursor_factory=psycopg2.extras.DictCursor) curs.execute("SELECT * FROM ExtrasDictCursorTests") @@ -285,19 +285,19 @@ class ExtrasDictCursorRealTests(_DictCursorBase): return row self._testWithNamedCursorReal(getter) - @skip_if_crdb("named cursor") + @skip_if_crdb("greedy cursor") @skip_before_postgres(8, 2) def testDictCursorRealWithNamedCursorNotGreedy(self): curs = self.conn.cursor('tmp', cursor_factory=psycopg2.extras.RealDictCursor) self._testNamedCursorNotGreedy(curs) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") @skip_before_postgres(8, 0) def testDictCursorRealWithNamedCursorIterRowNumber(self): curs = self.conn.cursor('tmp', cursor_factory=psycopg2.extras.RealDictCursor) self._testIterRowNumber(curs) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def _testWithNamedCursorReal(self, getter): curs = self.conn.cursor('aname', cursor_factory=psycopg2.extras.RealDictCursor) @@ -376,7 +376,7 @@ class NamedTupleCursorTest(ConnectingTestCase): curs.execute("INSERT INTO nttest VALUES (3, 'baz')") self.conn.commit() - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def test_cursor_args(self): cur = self.conn.cursor('foo', cursor_factory=psycopg2.extras.DictCursor) self.assertEqual(cur.name, 'foo') @@ -533,7 +533,7 @@ class NamedTupleCursorTest(ConnectingTestCase): finally: NamedTupleCursor._make_nt = f_orig - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") @skip_before_postgres(8, 0) def test_named(self): curs = self.conn.cursor('tmp') @@ -544,28 +544,28 @@ class NamedTupleCursorTest(ConnectingTestCase): recs.extend(curs.fetchall()) self.assertEqual(list(range(10)), [t.i for t in recs]) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def test_named_fetchone(self): curs = self.conn.cursor('tmp') curs.execute("""select 42 as i""") t = curs.fetchone() self.assertEqual(t.i, 42) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def test_named_fetchmany(self): curs = self.conn.cursor('tmp') curs.execute("""select 42 as i""") recs = curs.fetchmany(10) self.assertEqual(recs[0].i, 42) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def test_named_fetchall(self): curs = self.conn.cursor('tmp') curs.execute("""select 42 as i""") recs = curs.fetchall() self.assertEqual(recs[0].i, 42) - @skip_if_crdb("named cursor") + @skip_if_crdb("greedy cursor") @skip_before_postgres(8, 2) def test_not_greedy(self): curs = self.conn.cursor('tmp') @@ -580,7 +580,7 @@ class NamedTupleCursorTest(ConnectingTestCase): self.assert_(recs[1].ts - recs[0].ts < timedelta(seconds=0.005)) self.assert_(recs[2].ts - recs[1].ts > timedelta(seconds=0.0099)) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") @skip_before_postgres(8, 0) def test_named_rownumber(self): curs = self.conn.cursor('tmp') diff --git a/tests/test_green.py b/tests/test_green.py index e3a4946..e558d62 100755 --- a/tests/test_green.py +++ b/tests/test_green.py @@ -219,7 +219,7 @@ class CallbackErrorTestCase(ConnectingTestCase): self.fail("you should have had a success or an error by now") - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def test_errors_named_cursor(self): for i in range(100): self.to_error = None diff --git a/tests/test_with.py b/tests/test_with.py index f71989d..7141189 100755 --- a/tests/test_with.py +++ b/tests/test_with.py @@ -290,7 +290,7 @@ class WithCursorTestCase(WithTestCase): self.assert_(curs.closed) self.assert_(closes) - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") def test_exception_swallow(self): # bug #262: __exit__ calls cur.close() that hides the exception # with another error. @@ -304,7 +304,7 @@ class WithCursorTestCase(WithTestCase): else: self.fail("where is my exception?") - @skip_if_crdb("named cursor") + @skip_if_crdb("named cursor", version="< 22.1") @skip_before_postgres(8, 2) def test_named_with_noop(self): with self.conn.cursor('named'): diff --git a/tests/testutils.py b/tests/testutils.py index 1384e84..b275d22 100644 --- a/tests/testutils.py +++ b/tests/testutils.py @@ -467,11 +467,13 @@ def skip_if_crdb(reason, conn=None, version=None): crdb_reasons = { "2-phase commit": 22329, "backend pid": 35897, + "batch statements": 44803, "cancel": 41335, "cast adds tz": 51692, "cidr": 18846, "composite": 27792, "copy": 41608, + "cursor with hold": 77101, "deferrable": 48307, "encoding": 35882, "hstore": 41284, @@ -483,6 +485,7 @@ crdb_reasons = { "notify": 41522, "password_encryption": 42519, "range": 41282, + "scroll cursor": 77102, "stored procedure": 1751, } |