diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-08-04 15:43:16 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-08-04 16:16:55 -0400 |
commit | 9b637eaa15f8c44c7bd2841b2179598101a0fcd9 (patch) | |
tree | 371ff924145ae48728dc0253d595224a4a694ef7 /lib/sqlalchemy/testing/plugin | |
parent | 54cdda032ea59789be15972ed0529f71fd4f0214 (diff) | |
download | sqlalchemy-allow_multi_backends.tar.gz |
Allow multiple versions of single backendallow_multi_backends
Improve screen output to illustrate which server version is
running for a particular database config, and additionally
allow full overriding for the backend-specific targets in
tox.ini via environment variables, so that CI can inject
multiple server urls for a particular database such as MySQL/MariaDB.
Change-Id: Ibf443bb9fb82e4563efd1bb66058fa9989aa2fda
Diffstat (limited to 'lib/sqlalchemy/testing/plugin')
-rw-r--r-- | lib/sqlalchemy/testing/plugin/plugin_base.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py index 996cf4582..e01fa9bd0 100644 --- a/lib/sqlalchemy/testing/plugin/plugin_base.py +++ b/lib/sqlalchemy/testing/plugin/plugin_base.py @@ -409,12 +409,12 @@ def want_method(cls, fn): def generate_sub_tests(cls, module): if getattr(cls, '__backend__', False): for cfg in _possible_configs_for_cls(cls): - name = "%s_%s_%s" % (cls.__name__, cfg.db.name, cfg.db.driver) + name = "%s_%s" % (cls.__name__, cfg.name) subcls = type( name, (cls, ), { - "__only_on__": ("%s+%s" % (cfg.db.name, cfg.db.driver)), + "__only_on_config__": cfg } ) setattr(module, name, subcls) @@ -489,6 +489,9 @@ def _possible_configs_for_cls(cls, reasons=None): if not spec(config_obj): all_configs.remove(config_obj) + if getattr(cls, '__only_on_config__', None): + all_configs.intersection_update([cls.__only_on_config__]) + if hasattr(cls, '__requires__'): requirements = config.requirements for config_obj in list(all_configs): |