summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing/plugin
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-03-24 12:49:22 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-03-24 12:49:22 -0400
commit50d19f55d265847c874d5eca3660af0d61c1c454 (patch)
tree58a749a877133c39eda04d80ddd994901e45f0ce /lib/sqlalchemy/testing/plugin
parent990266f5515afed78260cce4736640faa19c05da (diff)
downloadsqlalchemy-50d19f55d265847c874d5eca3660af0d61c1c454.tar.gz
- add some more rules to make sure all tests run if DBs are available
Diffstat (limited to 'lib/sqlalchemy/testing/plugin')
-rw-r--r--lib/sqlalchemy/testing/plugin/plugin_base.py14
1 files changed, 13 insertions, 1 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: