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/config.py | |
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/config.py')
-rw-r--r-- | lib/sqlalchemy/testing/config.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/sqlalchemy/testing/config.py b/lib/sqlalchemy/testing/config.py index 64be3ac74..73d8a7de8 100644 --- a/lib/sqlalchemy/testing/config.py +++ b/lib/sqlalchemy/testing/config.py @@ -24,6 +24,7 @@ except ImportError: class Config(object): def __init__(self, db, db_opts, options, file_config): + self._set_name(db) self.db = db self.db_opts = db_opts self.options = options @@ -32,7 +33,14 @@ class Config(object): self.test_schema_2 = "test_schema_2" _stack = collections.deque() - _configs = {} + _configs = set() + + def _set_name(self, db): + if db.dialect.server_version_info: + svi = ".".join(str(tok) for tok in db.dialect.server_version_info) + self.name = "%s+%s_[%s]" % (db.name, db.driver, svi) + else: + self.name = "%s+%s" % (db.name, db.driver) @classmethod def register(cls, db, db_opts, options, file_config): @@ -42,10 +50,7 @@ class Config(object): gets set as the "_current". """ cfg = Config(db, db_opts, options, file_config) - - cls._configs[cfg.db.name] = cfg - cls._configs[(cfg.db.name, cfg.db.dialect)] = cfg - cls._configs[cfg.db] = cfg + cls._configs.add(cfg) return cfg @classmethod @@ -80,8 +85,7 @@ class Config(object): @classmethod def all_configs(cls): - for cfg in set(cls._configs.values()): - yield cfg + return cls._configs @classmethod def all_dbs(cls): |