diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-07-25 16:39:44 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-07-25 16:39:44 -0400 |
commit | fe878f5aff1cb17fdf1f13aba1d13f008da0ef4e (patch) | |
tree | 27a1efb8d5a127b8a64efeffd1ed909fd06a941b | |
parent | 3c0efe508f4b02ca69db1f4855f5bfeb936ac9e9 (diff) | |
download | sqlalchemy-fe878f5aff1cb17fdf1f13aba1d13f008da0ef4e.tar.gz |
- more pg8000 tests passing
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/testing/requirements.py | 8 | ||||
-rw-r--r-- | test/engine/test_ddlevents.py | 3 | ||||
-rw-r--r-- | test/engine/test_pool.py | 2 | ||||
-rw-r--r-- | test/engine/test_reconnect.py | 3 | ||||
-rw-r--r-- | test/ext/test_serializer.py | 4 | ||||
-rw-r--r-- | test/requirements.py | 10 |
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.""" |