summaryrefslogtreecommitdiffstats
path: root/tests/unit
diff options
context:
space:
mode:
authorMichael Wilson <geekinutah@gmail.com>2013-05-16 18:51:41 -0600
committerMichael Wilson <geekinutah@gmail.com>2013-06-03 07:34:55 -0600
commit444bdbcf36c189de65b524a596b79d48bcdb6cd5 (patch)
treee20142a4d24f81a2579dba822c635f046f6e08bb /tests/unit
parent98e1d15a6b4d773fd292ce0630115feba041cbfc (diff)
downloadoslo-444bdbcf36c189de65b524a596b79d48bcdb6cd5.tar.gz
oslo-444bdbcf36c189de65b524a596b79d48bcdb6cd5.tar.xz
oslo-444bdbcf36c189de65b524a596b79d48bcdb6cd5.zip
Add a slave db handle for the SQLAlchemy backend.
Adds an option for a slave DB connection for scaling purposes. Read queries can be sent here to spread out db load a bit. This patch adds a new configuration option: slave_connection. Implements: blueprint db-slave-handle Change-Id: I5cc5e0696e3fcd8609ee6b5466b0377ca52b8b58 DocImpact
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/db/sqlalchemy/test_sqlalchemy.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/unit/db/sqlalchemy/test_sqlalchemy.py b/tests/unit/db/sqlalchemy/test_sqlalchemy.py
index b18825a..e548a3b 100644
--- a/tests/unit/db/sqlalchemy/test_sqlalchemy.py
+++ b/tests/unit/db/sqlalchemy/test_sqlalchemy.py
@@ -182,3 +182,23 @@ class RegexpFilterTestCase(test_utils.BaseTestCase):
def test_regexp_filter_unicode_nomatch(self):
self._test_regexp_filter(u'♦', [])
+
+
+class SlaveBackendTestCase(test_utils.BaseTestCase):
+
+ def test_slave_engine_nomatch(self):
+ default = session.CONF.database.connection
+ session.CONF.database.slave_connection = default
+
+ e = session.get_engine()
+ slave_e = session.get_engine(slave_engine=True)
+ self.assertNotEqual(slave_e, e)
+
+ def test_no_slave_engine_match(self):
+ slave_e = session.get_engine()
+ e = session.get_engine()
+ self.assertEqual(slave_e, e)
+
+ def test_slave_backend_nomatch(self):
+ session.CONF.database.slave_connection = "mysql:///localhost"
+ self.assertRaises(AssertionError, session._assert_matching_drivers)