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 /lib/sqlalchemy/testing/plugin | |
| parent | 990266f5515afed78260cce4736640faa19c05da (diff) | |
| download | sqlalchemy-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.py | 14 |
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: |
