mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-01-31 17:34:08 +03:00
Bunch of test tweaks to make the test grid green
This commit is contained in:
parent
98a9203827
commit
a5970a21a8
|
@ -71,16 +71,8 @@ class ConnectionTests(ConnectingTestCase):
|
||||||
# ticket #148
|
# ticket #148
|
||||||
conn = self.conn
|
conn = self.conn
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
try:
|
self.assertRaises(psycopg2.OperationalError,
|
||||||
cur.execute("select pg_terminate_backend(pg_backend_pid())")
|
cur.execute, "select pg_terminate_backend(pg_backend_pid())")
|
||||||
except psycopg2.OperationalError, e:
|
|
||||||
if e.pgcode != psycopg2.errorcodes.ADMIN_SHUTDOWN:
|
|
||||||
raise
|
|
||||||
except psycopg2.DatabaseError, e:
|
|
||||||
# curiously when disconnected in green mode we get a DatabaseError
|
|
||||||
# without pgcode.
|
|
||||||
if e.pgcode is not None:
|
|
||||||
raise
|
|
||||||
|
|
||||||
self.assertEqual(conn.closed, 2)
|
self.assertEqual(conn.closed, 2)
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
|
@ -32,6 +32,8 @@ import psycopg2.extras
|
||||||
from psycopg2.extensions import b
|
from psycopg2.extensions import b
|
||||||
from testutils import unittest, ConnectingTestCase, skip_before_postgres
|
from testutils import unittest, ConnectingTestCase, skip_before_postgres
|
||||||
from testutils import skip_if_no_namedtuple, skip_if_no_getrefcount
|
from testutils import skip_if_no_namedtuple, skip_if_no_getrefcount
|
||||||
|
from testutils import skip_if_no_superuser, skip_if_windows
|
||||||
|
|
||||||
|
|
||||||
class CursorTests(ConnectingTestCase):
|
class CursorTests(ConnectingTestCase):
|
||||||
|
|
||||||
|
@ -51,8 +53,10 @@ class CursorTests(ConnectingTestCase):
|
||||||
conn = self.conn
|
conn = self.conn
|
||||||
cur = conn.cursor()
|
cur = conn.cursor()
|
||||||
cur.execute("create temp table test_exc (data int);")
|
cur.execute("create temp table test_exc (data int);")
|
||||||
|
|
||||||
def buggygen():
|
def buggygen():
|
||||||
yield 1//0
|
yield 1 // 0
|
||||||
|
|
||||||
self.assertRaises(ZeroDivisionError,
|
self.assertRaises(ZeroDivisionError,
|
||||||
cur.executemany, "insert into test_exc values (%s)", buggygen())
|
cur.executemany, "insert into test_exc values (%s)", buggygen())
|
||||||
cur.close()
|
cur.close()
|
||||||
|
@ -197,16 +201,16 @@ class CursorTests(ConnectingTestCase):
|
||||||
|
|
||||||
self._create_withhold_table()
|
self._create_withhold_table()
|
||||||
curs = self.conn.cursor("W")
|
curs = self.conn.cursor("W")
|
||||||
self.assertEqual(curs.withhold, False);
|
self.assertEqual(curs.withhold, False)
|
||||||
curs.withhold = True
|
curs.withhold = True
|
||||||
self.assertEqual(curs.withhold, True);
|
self.assertEqual(curs.withhold, True)
|
||||||
curs.execute("select data from withhold order by data")
|
curs.execute("select data from withhold order by data")
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
self.assertEqual(curs.fetchall(), [(10,), (20,), (30,)])
|
self.assertEqual(curs.fetchall(), [(10,), (20,), (30,)])
|
||||||
curs.close()
|
curs.close()
|
||||||
|
|
||||||
curs = self.conn.cursor("W", withhold=True)
|
curs = self.conn.cursor("W", withhold=True)
|
||||||
self.assertEqual(curs.withhold, True);
|
self.assertEqual(curs.withhold, True)
|
||||||
curs.execute("select data from withhold order by data")
|
curs.execute("select data from withhold order by data")
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
self.assertEqual(curs.fetchall(), [(10,), (20,), (30,)])
|
self.assertEqual(curs.fetchall(), [(10,), (20,), (30,)])
|
||||||
|
@ -268,18 +272,18 @@ class CursorTests(ConnectingTestCase):
|
||||||
curs = self.conn.cursor()
|
curs = self.conn.cursor()
|
||||||
curs.execute("create table scrollable (data int)")
|
curs.execute("create table scrollable (data int)")
|
||||||
curs.executemany("insert into scrollable values (%s)",
|
curs.executemany("insert into scrollable values (%s)",
|
||||||
[ (i,) for i in range(100) ])
|
[(i,) for i in range(100)])
|
||||||
curs.close()
|
curs.close()
|
||||||
|
|
||||||
for t in range(2):
|
for t in range(2):
|
||||||
if not t:
|
if not t:
|
||||||
curs = self.conn.cursor("S")
|
curs = self.conn.cursor("S")
|
||||||
self.assertEqual(curs.scrollable, None);
|
self.assertEqual(curs.scrollable, None)
|
||||||
curs.scrollable = True
|
curs.scrollable = True
|
||||||
else:
|
else:
|
||||||
curs = self.conn.cursor("S", scrollable=True)
|
curs = self.conn.cursor("S", scrollable=True)
|
||||||
|
|
||||||
self.assertEqual(curs.scrollable, True);
|
self.assertEqual(curs.scrollable, True)
|
||||||
curs.itersize = 10
|
curs.itersize = 10
|
||||||
|
|
||||||
# complex enough to make postgres cursors declare without
|
# complex enough to make postgres cursors declare without
|
||||||
|
@ -307,7 +311,7 @@ class CursorTests(ConnectingTestCase):
|
||||||
curs = self.conn.cursor()
|
curs = self.conn.cursor()
|
||||||
curs.execute("create table scrollable (data int)")
|
curs.execute("create table scrollable (data int)")
|
||||||
curs.executemany("insert into scrollable values (%s)",
|
curs.executemany("insert into scrollable values (%s)",
|
||||||
[ (i,) for i in range(100) ])
|
[(i,) for i in range(100)])
|
||||||
curs.close()
|
curs.close()
|
||||||
|
|
||||||
curs = self.conn.cursor("S") # default scrollability
|
curs = self.conn.cursor("S") # default scrollability
|
||||||
|
@ -344,7 +348,7 @@ class CursorTests(ConnectingTestCase):
|
||||||
def test_iter_named_cursor_default_itersize(self):
|
def test_iter_named_cursor_default_itersize(self):
|
||||||
curs = self.conn.cursor('tmp')
|
curs = self.conn.cursor('tmp')
|
||||||
curs.execute('select generate_series(1,50)')
|
curs.execute('select generate_series(1,50)')
|
||||||
rv = [ (r[0], curs.rownumber) for r in curs ]
|
rv = [(r[0], curs.rownumber) for r in curs]
|
||||||
# everything swallowed in one gulp
|
# everything swallowed in one gulp
|
||||||
self.assertEqual(rv, [(i,i) for i in range(1,51)])
|
self.assertEqual(rv, [(i,i) for i in range(1,51)])
|
||||||
|
|
||||||
|
@ -353,7 +357,7 @@ class CursorTests(ConnectingTestCase):
|
||||||
curs = self.conn.cursor('tmp')
|
curs = self.conn.cursor('tmp')
|
||||||
curs.itersize = 30
|
curs.itersize = 30
|
||||||
curs.execute('select generate_series(1,50)')
|
curs.execute('select generate_series(1,50)')
|
||||||
rv = [ (r[0], curs.rownumber) for r in curs ]
|
rv = [(r[0], curs.rownumber) for r in curs]
|
||||||
# everything swallowed in two gulps
|
# everything swallowed in two gulps
|
||||||
self.assertEqual(rv, [(i,((i - 1) % 30) + 1) for i in range(1,51)])
|
self.assertEqual(rv, [(i,((i - 1) % 30) + 1) for i in range(1,51)])
|
||||||
|
|
||||||
|
@ -493,6 +497,8 @@ class CursorTests(ConnectingTestCase):
|
||||||
cur = self.conn.cursor()
|
cur = self.conn.cursor()
|
||||||
self.assertRaises(TypeError, cur.callproc, 'lower', 42)
|
self.assertRaises(TypeError, cur.callproc, 'lower', 42)
|
||||||
|
|
||||||
|
@skip_if_no_superuser
|
||||||
|
@skip_if_windows
|
||||||
@skip_before_postgres(8, 4)
|
@skip_before_postgres(8, 4)
|
||||||
def test_external_close_sync(self):
|
def test_external_close_sync(self):
|
||||||
# If a "victim" connection is closed by a "control" connection
|
# If a "victim" connection is closed by a "control" connection
|
||||||
|
@ -505,6 +511,8 @@ class CursorTests(ConnectingTestCase):
|
||||||
wait_func = lambda conn: None
|
wait_func = lambda conn: None
|
||||||
self._test_external_close(control_conn, connect_func, wait_func)
|
self._test_external_close(control_conn, connect_func, wait_func)
|
||||||
|
|
||||||
|
@skip_if_no_superuser
|
||||||
|
@skip_if_windows
|
||||||
@skip_before_postgres(8, 4)
|
@skip_before_postgres(8, 4)
|
||||||
def test_external_close_async(self):
|
def test_external_close_async(self):
|
||||||
# Issue #443 is in the async code too. Since the fix is duplicated,
|
# Issue #443 is in the async code too. Since the fix is duplicated,
|
||||||
|
|
|
@ -193,7 +193,8 @@ class TestQuotedString(ConnectingTestCase):
|
||||||
a = adapt(snowman)
|
a = adapt(snowman)
|
||||||
a.encoding = 'utf8'
|
a.encoding = 'utf8'
|
||||||
self.assertEqual(a.encoding, 'utf8')
|
self.assertEqual(a.encoding, 'utf8')
|
||||||
self.assertEqual(a.getquoted(), b("'\xe2\x98\x83'"))
|
q = a.getquoted()
|
||||||
|
self.assert_(q in (b("'\xe2\x98\x83'"), b("E'\xe2\x98\x83'")), q)
|
||||||
|
|
||||||
def test_connection_wins_anyway(self):
|
def test_connection_wins_anyway(self):
|
||||||
from psycopg2.extensions import adapt
|
from psycopg2.extensions import adapt
|
||||||
|
@ -205,7 +206,8 @@ class TestQuotedString(ConnectingTestCase):
|
||||||
a.prepare(self.conn)
|
a.prepare(self.conn)
|
||||||
|
|
||||||
self.assertEqual(a.encoding, 'utf_8')
|
self.assertEqual(a.encoding, 'utf_8')
|
||||||
self.assertEqual(a.getquoted(), b("'\xe2\x98\x83'"))
|
q = a.getquoted()
|
||||||
|
self.assert_(q in (b("'\xe2\x98\x83'"), b("E'\xe2\x98\x83'")), q)
|
||||||
|
|
||||||
@testutils.skip_before_python(3)
|
@testutils.skip_before_python(3)
|
||||||
def test_adapt_bytes(self):
|
def test_adapt_bytes(self):
|
||||||
|
@ -213,7 +215,8 @@ class TestQuotedString(ConnectingTestCase):
|
||||||
self.conn.set_client_encoding('utf8')
|
self.conn.set_client_encoding('utf8')
|
||||||
a = psycopg2.extensions.QuotedString(snowman.encode('utf8'))
|
a = psycopg2.extensions.QuotedString(snowman.encode('utf8'))
|
||||||
a.prepare(self.conn)
|
a.prepare(self.conn)
|
||||||
self.assertEqual(a.getquoted(), b("'\xe2\x98\x83'"))
|
q = a.getquoted()
|
||||||
|
self.assert_(q in (b("'\xe2\x98\x83'"), b("E'\xe2\x98\x83'")), q)
|
||||||
|
|
||||||
|
|
||||||
def test_suite():
|
def test_suite():
|
||||||
|
|
Loading…
Reference in New Issue
Block a user