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):
", ".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:
"""
__requires__ = 'ad_hoc_engines',
+ __prefer_requires__ = 'two_phase_transactions',
@testing.uses_deprecated(r'.*Use event.listen')
@testing.fails_on('firebird', 'Data type unknown')
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,
class BindTest(_fixtures.FixtureTest):
run_inserts = None
- __backend__ = True
def test_mapped_binds(self):
Address, addresses, users, User = (self.classes.Address,
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"""
class SessionUtilTest(_fixtures.FixtureTest):
run_inserts = None
- __backend__ = True
def test_object_session_raises(self):
User = self.classes.User
class SessionStateTest(_fixtures.FixtureTest):
run_inserts = None
- __backend__ = True
+ __prefer_requires__ = ('independent_connections', )
def test_info(self):
s = Session()
"""
run_inserts = None
- __backend__ = True
def setup(self):
mapper(self.classes.User, self.tables.users)
class FlushWarningsTest(fixtures.MappedTest):
run_setup_mappers = 'each'
- __backend__ = True
@classmethod
def define_tables(cls, metadata):
class UpdateDeleteTest(fixtures.MappedTest):
+ __backend__ = True
+
@classmethod
def define_tables(cls, metadata):
Table('users', metadata,
run_inserts = 'each'
run_deletes = 'each'
+ __backend__ = True
@classmethod
def setup_classes(cls):