From 444bdbcf36c189de65b524a596b79d48bcdb6cd5 Mon Sep 17 00:00:00 2001 From: Michael Wilson Date: Thu, 16 May 2013 18:51:41 -0600 Subject: 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 --- tests/unit/db/sqlalchemy/test_sqlalchemy.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests/unit') 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) -- cgit