summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-07-25 16:39:44 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-07-25 16:39:44 -0400
commitfe878f5aff1cb17fdf1f13aba1d13f008da0ef4e (patch)
tree27a1efb8d5a127b8a64efeffd1ed909fd06a941b
parent3c0efe508f4b02ca69db1f4855f5bfeb936ac9e9 (diff)
downloadsqlalchemy-fe878f5aff1cb17fdf1f13aba1d13f008da0ef4e.tar.gz
- more pg8000 tests passing
-rw-r--r--lib/sqlalchemy/engine/base.py1
-rw-r--r--lib/sqlalchemy/testing/requirements.py8
-rw-r--r--test/engine/test_ddlevents.py3
-rw-r--r--test/engine/test_pool.py2
-rw-r--r--test/engine/test_reconnect.py3
-rw-r--r--test/ext/test_serializer.py4
-rw-r--r--test/requirements.py10
7 files changed, 24 insertions, 7 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index f9dfea32b..2dc4d43f2 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -1071,7 +1071,6 @@ class Connection(Connectable):
parameters,
cursor,
context):
-
exc_info = sys.exc_info()
if context and context.exception is None:
diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py
index 3413c0d30..8fe7a5090 100644
--- a/lib/sqlalchemy/testing/requirements.py
+++ b/lib/sqlalchemy/testing/requirements.py
@@ -593,6 +593,14 @@ class SuiteRequirements(Requirements):
return exclusions.open()
@property
+ def graceful_disconnects(self):
+ """Target driver must raise a DBAPI-level exception, such as
+ InterfaceError, when the underlying connection has been closed
+ and the execute() method is called.
+ """
+ return exclusions.open()
+
+ @property
def skip_mysql_on_windows(self):
"""Catchall for a large variety of MySQL on Windows failures"""
return exclusions.open()
diff --git a/test/engine/test_ddlevents.py b/test/engine/test_ddlevents.py
index b3f73f6b1..0d828b340 100644
--- a/test/engine/test_ddlevents.py
+++ b/test/engine/test_ddlevents.py
@@ -461,12 +461,11 @@ class DDLExecutionTest(fixtures.TestBase):
r = eval(py)
assert list(r) == [(1,)], py
- @testing.fails_on('postgresql+pg8000', 'pg8000 requires explicit types')
def test_platform_escape(self):
"""test the escaping of % characters in the DDL construct."""
default_from = testing.db.dialect.statement_compiler(
- testing.db.dialect, None).default_from()
+ testing.db.dialect, None).default_from()
# We're abusing the DDL()
# construct here by pushing a SELECT through it
diff --git a/test/engine/test_pool.py b/test/engine/test_pool.py
index a9e650cca..29f369753 100644
--- a/test/engine/test_pool.py
+++ b/test/engine/test_pool.py
@@ -101,6 +101,7 @@ class PoolTest(PoolTestBase):
@testing.fails_on('+pyodbc',
"pyodbc cursor doesn't implement tuple __eq__")
+ @testing.fails_on("+pg8000", "returns [1], not (1,)")
def test_cursor_iterable(self):
conn = testing.db.raw_connection()
cursor = conn.cursor()
@@ -109,7 +110,6 @@ class PoolTest(PoolTestBase):
for row in cursor:
eq_(row, expected.pop(0))
-
def test_no_connect_on_recreate(self):
def creator():
raise Exception("no creates allowed")
diff --git a/test/engine/test_reconnect.py b/test/engine/test_reconnect.py
index e6897b13d..f92b874da 100644
--- a/test/engine/test_reconnect.py
+++ b/test/engine/test_reconnect.py
@@ -444,7 +444,6 @@ class CursorErrTest(fixtures.TestBase):
)
-
def _assert_invalidated(fn, *args):
try:
fn(*args)
@@ -453,8 +452,10 @@ def _assert_invalidated(fn, *args):
if not e.connection_invalidated:
raise
+
class RealReconnectTest(fixtures.TestBase):
__backend__ = True
+ __requires__ = 'graceful_disconnects',
def setup(self):
self.engine = engines.reconnecting_engine()
diff --git a/test/ext/test_serializer.py b/test/ext/test_serializer.py
index ffeac55c1..e6754d911 100644
--- a/test/ext/test_serializer.py
+++ b/test/ext/test_serializer.py
@@ -3,7 +3,7 @@
from sqlalchemy.ext import serializer
from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, select, \
- desc, func, util, MetaData
+ desc, func, util, MetaData, literal_column
from sqlalchemy.testing.schema import Table
from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import relationship, sessionmaker, scoped_session, \
@@ -105,7 +105,7 @@ class SerializeTest(AssertsCompiledSQL, fixtures.MappedTest):
self.assert_sql_count(testing.db, go, 1)
eq_(q2.join(User.addresses).filter(Address.email
- == 'ed@bettyboop.com').value(func.count('*')), 1)
+ == 'ed@bettyboop.com').value(func.count(literal_column('*'))), 1)
u1 = Session.query(User).get(8)
q = Session.query(Address).filter(Address.user
== u1).order_by(desc(Address.email))
diff --git a/test/requirements.py b/test/requirements.py
index f91c8f68a..024f32c54 100644
--- a/test/requirements.py
+++ b/test/requirements.py
@@ -365,6 +365,16 @@ class DefaultRequirements(SuiteRequirements):
])
@property
+ def graceful_disconnects(self):
+ """Target driver must raise a DBAPI-level exception, such as
+ InterfaceError, when the underlying connection has been closed
+ and the execute() method is called.
+ """
+ return fails_on(
+ "postgresql+pg8000", "Driver crashes"
+ )
+
+ @property
def views(self):
"""Target database must support VIEWs."""