summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrant Knudson <bknudson@us.ibm.com>2013-05-15 21:23:05 -0500
committerBrant Knudson <bknudson@us.ibm.com>2013-06-06 16:54:10 -0500
commit02fefdf434c9f3ccd0b2fe95645d58065dbae0ce (patch)
treeaf2114889e4d972085007af07c4fc3f4e0dfc3b8
parent316f059a0e18e705c0fe276f181445b05ba087ea (diff)
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
-rw-r--r--keystone/common/sql/core.py3
-rw-r--r--tests/test_sql_core.py10
2 files changed, 12 insertions, 1 deletions
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)