From 02fefdf434c9f3ccd0b2fe95645d58065dbae0ce Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Wed, 15 May 2013 21:23:05 -0500 Subject: Pass on arguments on Base.get_session This change makes it so that the arguments for the session creation function get_session() get passed on when it calls the function to create the session. Change-Id: I2f889ab36bd3aa3bf4441a13eb2b610b54349cbb --- keystone/common/sql/core.py | 3 ++- tests/test_sql_core.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/keystone/common/sql/core.py b/keystone/common/sql/core.py index e1bd138e..52eee634 100644 --- a/keystone/common/sql/core.py +++ b/keystone/common/sql/core.py @@ -214,7 +214,8 @@ class Base(object): self._engine = self._engine or self.get_engine() self._sessionmaker = self._sessionmaker or self.get_sessionmaker( self._engine) - return self._sessionmaker() + return self._sessionmaker(autocommit=autocommit, + expire_on_commit=expire_on_commit) def get_engine(self, allow_global_engine=True): """Return a SQLAlchemy engine. diff --git a/tests/test_sql_core.py b/tests/test_sql_core.py index d8f2a4f7..f2f989c4 100644 --- a/tests/test_sql_core.py +++ b/tests/test_sql_core.py @@ -38,3 +38,13 @@ class TestBase(test.TestCase): engine1 = base.get_engine() engine2 = base.get_engine(allow_global_engine=False) self.assertIsNot(engine1, engine2) + + def test_get_session(self): + # autocommit and expire_on_commit flags to get_session() are passed on + # to the session created. + + base = sql.Base() + session = base.get_session(autocommit=False, expire_on_commit=True) + + self.assertFalse(session.autocommit) + self.assertTrue(session.expire_on_commit) -- cgit