Override opportunistic database tests to PyMySQL
Set the OS_TEST_DBAPI_ADMIN_CONNECTION override variable so that oslo.db opportunistic detection will know to use PyMySQL until I12b32dc097a121bd43991bc38dd4d289b65e86c1 makes it the default behavior. This change removes previous code[1] enabling PyMySQL use. [1] Ic5c1d12ab75443e1cc290a7447eeb4b452b4a9dd Change-Id: Ic39feee0248f2ffabdba26f3779ab40a8f3838e6 Co-Authored-By: Victor Sergeyev <vsergeyev@mirantis.com> Co-Authored-By: Cedric Brandily <zzelle@gmail.com>
This commit is contained in:
parent
04d44cee63
commit
d23a59f1c8
|
@ -14,7 +14,6 @@
|
|||
import functools
|
||||
import unittest.case
|
||||
|
||||
from oslo_db.sqlalchemy import provision
|
||||
from oslo_db.sqlalchemy import test_base
|
||||
import testtools.testcase
|
||||
|
||||
|
@ -71,49 +70,12 @@ def no_skip_on_missing_deps(wrapped):
|
|||
return wrapper
|
||||
|
||||
|
||||
# NOTE(cbrandily): Define mysql+pymysql backend implementation
|
||||
@provision.BackendImpl.impl.dispatch_for("mysql+pymysql")
|
||||
class PyMySQLBackendImpl(provision.BackendImpl):
|
||||
|
||||
default_engine_kwargs = {'mysql_sql_mode': 'TRADITIONAL'}
|
||||
|
||||
def create_opportunistic_driver_url(self):
|
||||
return "mysql+pymysql://openstack_citest:openstack_citest@localhost/"
|
||||
|
||||
def create_named_database(self, engine, ident, conditional=False):
|
||||
with engine.connect() as conn:
|
||||
if not conditional or not self.database_exists(conn, ident):
|
||||
conn.execute("CREATE DATABASE %s" % ident)
|
||||
|
||||
def drop_named_database(self, engine, ident, conditional=False):
|
||||
with engine.connect() as conn:
|
||||
if not conditional or self.database_exists(conn, ident):
|
||||
conn.execute("DROP DATABASE %s" % ident)
|
||||
|
||||
def database_exists(self, engine, ident):
|
||||
return bool(engine.scalar("SHOW DATABASES LIKE '%s'" % ident))
|
||||
|
||||
|
||||
impl = provision.BackendImpl.impl("mysql+pymysql")
|
||||
url = impl.create_opportunistic_driver_url()
|
||||
# NOTE(cbrandily): Declare mysql+pymysql backend implementation
|
||||
provision.Backend("mysql+pymysql", url)
|
||||
|
||||
|
||||
# NOTE(cbrandily): Define mysql+pymysql db fixture
|
||||
class PyMySQLFixture(test_base.DbFixture):
|
||||
DRIVER = 'mysql+pymysql'
|
||||
|
||||
|
||||
# NOTE(cbrandily): Define mysql+pymysql base testcase
|
||||
class MySQLTestCase(test_base.DbTestCase):
|
||||
class MySQLTestCase(test_base.MySQLOpportunisticTestCase):
|
||||
"""Base test class for MySQL tests.
|
||||
|
||||
Enforce the supported driver, which is PyMySQL.
|
||||
If the MySQL db is unavailable then this test is skipped, unless
|
||||
OS_FAIL_ON_MISSING_DEPS is enabled.
|
||||
"""
|
||||
FIXTURE = PyMySQLFixture
|
||||
SKIP_ON_UNAVAILABLE_DB = not base.bool_from_env('OS_FAIL_ON_MISSING_DEPS')
|
||||
|
||||
|
||||
|
|
1
tox.ini
1
tox.ini
|
@ -5,6 +5,7 @@ skipsdist = True
|
|||
|
||||
[testenv]
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
OS_TEST_DBAPI_ADMIN_CONNECTION=mysql+pymysql://openstack_citest:openstack_citest@localhost/;postgresql://openstack_citest:openstack_citest@localhost/postgres;sqlite://
|
||||
passenv = TRACE_FAILONLY
|
||||
usedevelop = True
|
||||
install_command = pip install -U {opts} {packages}
|
||||
|
|
Loading…
Reference in New Issue