summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)