diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-03-24 12:49:22 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-03-24 12:49:22 -0400 |
commit | 50d19f55d265847c874d5eca3660af0d61c1c454 (patch) | |
tree | 58a749a877133c39eda04d80ddd994901e45f0ce | |
parent | 990266f5515afed78260cce4736640faa19c05da (diff) | |
download | sqlalchemy-50d19f55d265847c874d5eca3660af0d61c1c454.tar.gz |
- add some more rules to make sure all tests run if DBs are available
-rw-r--r-- | lib/sqlalchemy/testing/plugin/plugin_base.py | 14 | ||||
-rw-r--r-- | test/engine/test_execute.py | 1 | ||||
-rw-r--r-- | test/orm/test_eager_relations.py | 2 | ||||
-rw-r--r-- | test/orm/test_session.py | 8 | ||||
-rw-r--r-- | test/orm/test_update_delete.py | 3 |
5 files changed, 21 insertions, 7 deletions
diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py index d97546a67..55fbf8f11 100644 --- a/lib/sqlalchemy/testing/plugin/plugin_base.py +++ b/lib/sqlalchemy/testing/plugin/plugin_base.py @@ -375,6 +375,18 @@ def _do_skips(cls): reasons.append(check.reason) break + if hasattr(cls, '__prefer_requires__'): + non_preferred = set() + requirements = config.requirements + for config_obj in list(all_configs): + for requirement in cls.__prefer_requires__: + check = getattr(requirements, requirement) + + if check.predicate(config_obj): + non_preferred.add(config_obj) + if all_configs.difference(non_preferred): + all_configs.difference_update(non_preferred) + if cls.__unsupported_on__: spec = exclusions.db_spec(*cls.__unsupported_on__) for config_obj in list(all_configs): @@ -415,7 +427,7 @@ def _do_skips(cls): ", ".join(reasons) ) ) - elif hasattr(cls, '__prefer__'): + elif hasattr(cls, '__prefer_backends__'): non_preferred = set() spec = exclusions.db_spec(*util.to_list(cls.__prefer__)) for config_obj in all_configs: diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py index aad43c1df..73e708085 100644 --- a/test/engine/test_execute.py +++ b/test/engine/test_execute.py @@ -1410,6 +1410,7 @@ class ProxyConnectionTest(fixtures.TestBase): """ __requires__ = 'ad_hoc_engines', + __prefer_requires__ = 'two_phase_transactions', @testing.uses_deprecated(r'.*Use event.listen') @testing.fails_on('firebird', 'Data type unknown') diff --git a/test/orm/test_eager_relations.py b/test/orm/test_eager_relations.py index bfc532576..7d1f79e97 100644 --- a/test/orm/test_eager_relations.py +++ b/test/orm/test_eager_relations.py @@ -2432,6 +2432,8 @@ class MixedEntitiesTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL): run_deletes = None __dialect__ = 'default' + __prefer_backends__ = ('postgresql', 'mysql', 'oracle') + @classmethod def setup_mappers(cls): users, Keyword, items, order_items, orders, Item, User, Address, keywords, Order, item_keywords, addresses = (cls.tables.users, diff --git a/test/orm/test_session.py b/test/orm/test_session.py index 1a78c51b8..5993c15f3 100644 --- a/test/orm/test_session.py +++ b/test/orm/test_session.py @@ -20,7 +20,6 @@ from sqlalchemy import event, ForeignKey class BindTest(_fixtures.FixtureTest): run_inserts = None - __backend__ = True def test_mapped_binds(self): Address, addresses, users, User = (self.classes.Address, @@ -260,7 +259,7 @@ class ExecutionTest(_fixtures.FixtureTest): class TransScopingTest(_fixtures.FixtureTest): run_inserts = None - __backend__ = True + __prefer_requires__ = "independent_connections", def test_no_close_on_flush(self): """Flush() doesn't close a connection the session didn't open""" @@ -316,7 +315,6 @@ class TransScopingTest(_fixtures.FixtureTest): class SessionUtilTest(_fixtures.FixtureTest): run_inserts = None - __backend__ = True def test_object_session_raises(self): User = self.classes.User @@ -397,8 +395,8 @@ class SessionUtilTest(_fixtures.FixtureTest): class SessionStateTest(_fixtures.FixtureTest): run_inserts = None - __backend__ = True + __prefer_requires__ = ('independent_connections', ) def test_info(self): s = Session() @@ -890,7 +888,6 @@ class NoCyclesOnTransientDetachedTest(_fixtures.FixtureTest): """ run_inserts = None - __backend__ = True def setup(self): mapper(self.classes.User, self.tables.users) @@ -1645,7 +1642,6 @@ class TLTransactionTest(fixtures.MappedTest): class FlushWarningsTest(fixtures.MappedTest): run_setup_mappers = 'each' - __backend__ = True @classmethod def define_tables(cls, metadata): diff --git a/test/orm/test_update_delete.py b/test/orm/test_update_delete.py index ac94fde2f..bf72b49f6 100644 --- a/test/orm/test_update_delete.py +++ b/test/orm/test_update_delete.py @@ -12,6 +12,8 @@ from sqlalchemy.testing.schema import Table, Column class UpdateDeleteTest(fixtures.MappedTest): + __backend__ = True + @classmethod def define_tables(cls, metadata): Table('users', metadata, @@ -734,6 +736,7 @@ class InheritTest(fixtures.DeclarativeMappedTest): run_inserts = 'each' run_deletes = 'each' + __backend__ = True @classmethod def setup_classes(cls): |