summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/dialect/test_firebird.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/test/dialect/test_firebird.py b/test/dialect/test_firebird.py
index 6019dc8f9..4a71b7d05 100644
--- a/test/dialect/test_firebird.py
+++ b/test/dialect/test_firebird.py
@@ -444,3 +444,76 @@ class MiscTest(fixtures.TestBase):
(text("select 'hello % world' from rdb$database"),
'hello % world'):
eq_(testing.db.scalar(expr), result)
+
+from sqlalchemy.testing.mock import Mock, call
+
+
+class ArgumentTest(fixtures.TestBase):
+ def _dbapi(self):
+ return Mock(
+ paramstyle='qmark',
+ connect=Mock(
+ return_value=Mock(
+ server_version="UI-V6.3.2.18118 Firebird 2.1",
+ cursor=Mock(return_value=Mock())
+ )
+ )
+ )
+
+ def _engine(self, type_, **kw):
+ dbapi = self._dbapi()
+ kw.update(
+ dict(
+ module=dbapi,
+ _initialize=False
+ )
+ )
+ engine = engines.testing_engine("firebird+%s://" % type_,
+ options=kw)
+ return engine
+
+ def test_retaining_flag_default_kinterbasdb(self):
+ engine = self._engine("kinterbasdb")
+ self._assert_retaining(engine, False)
+
+ def test_retaining_flag_true_kinterbasdb(self):
+ engine = self._engine("kinterbasdb", retaining=True)
+ self._assert_retaining(engine, True)
+
+ def test_retaining_flag_false_kinterbasdb(self):
+ engine = self._engine("kinterbasdb", retaining=False)
+ self._assert_retaining(engine, False)
+
+ def test_retaining_flag_default_fdb(self):
+ engine = self._engine("fdb")
+ self._assert_retaining(engine, False)
+
+ def test_retaining_flag_true_fdb(self):
+ engine = self._engine("fdb", retaining=True)
+ self._assert_retaining(engine, True)
+
+ def test_retaining_flag_false_fdb(self):
+ engine = self._engine("fdb", retaining=False)
+ self._assert_retaining(engine, False)
+
+
+ def _assert_retaining(self, engine, flag):
+ conn = engine.connect()
+ trans = conn.begin()
+ trans.commit()
+ eq_(
+ engine.dialect.dbapi.connect.return_value.commit.mock_calls,
+ [call(flag)]
+ )
+
+ trans = conn.begin()
+ trans.rollback()
+ eq_(
+ engine.dialect.dbapi.connect.return_value.rollback.mock_calls,
+ [call(flag)]
+ )
+
+
+
+
+