diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-04-05 14:31:28 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-04-05 14:31:28 -0400 |
commit | 4cb74452fe551c3d4f0dd305bee1e69dbdccd99a (patch) | |
tree | 2759e0df35e59fde505492bd67a19415999968f3 /test/dialect/test_mssql.py | |
parent | 879e6bc462403933fdadc17b700e231eba3207db (diff) | |
download | sqlalchemy-4cb74452fe551c3d4f0dd305bee1e69dbdccd99a.tar.gz |
- [bug] Repaired the use_scope_identity
create_engine() flag when using the pyodbc
dialect. Previously this flag would be
ignored if set to False. When set to False,
you'll get "SELECT @@identity" after each
INSERT to get at the last inserted ID,
for those tables which have "implicit_returning"
set to False.
Diffstat (limited to 'test/dialect/test_mssql.py')
-rw-r--r-- | test/dialect/test_mssql.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/test/dialect/test_mssql.py b/test/dialect/test_mssql.py index dddc6333d..2b35ff57f 100644 --- a/test/dialect/test_mssql.py +++ b/test/dialect/test_mssql.py @@ -750,7 +750,8 @@ class QueryUnicodeTest(fixtures.TestBase): finally: meta.drop_all() -class QueryTest(fixtures.TestBase): +from test.lib.assertsql import ExactSQL +class QueryTest(testing.AssertsExecutionResults, fixtures.TestBase): __only_on__ = 'mssql' def test_fetchid_trigger(self): @@ -818,6 +819,27 @@ class QueryTest(fixtures.TestBase): con.execute("""drop trigger paj""") meta.drop_all() + @testing.provide_metadata + def test_disable_scope_identity(self): + engine = engines.testing_engine(options={"use_scope_identity":False}) + metadata = self.metadata + metadata.bind = engine + t1 = Table('t1', metadata, + Column('id', Integer, primary_key=True), + implicit_returning=False + ) + metadata.create_all() + + self.assert_sql_execution( + testing.db, + lambda: engine.execute(t1.insert()), + ExactSQL("INSERT INTO t1 DEFAULT VALUES"), + # we dont have an event for + # "SELECT @@IDENTITY" part here. + # this will be in 0.8 with #2459 + ) + assert not engine.dialect.use_scope_identity + def test_insertid_schema(self): meta = MetaData(testing.db) con = testing.db.connect() |