diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-10-28 21:28:53 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-10-28 21:28:53 +0000 |
| commit | bbebcdf8f526226d2d64a91dfc306086fc9873f4 (patch) | |
| tree | 9d7ae997a5f816418ac05b20b22f523653fc32f6 /test/sql | |
| parent | 19fcf37483b381d795239fa328d08ce97b87ed90 (diff) | |
| download | sqlalchemy-bbebcdf8f526226d2d64a91dfc306086fc9873f4.tar.gz | |
- fixed INSERT statements w.r.t. primary key columns that have SQL-expression
based default generators on them; SQL expression executes inline as normal
but will not trigger a "postfetch" condition for the column, for those DB's
who provide it via cursor.lastrowid
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/defaults.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/sql/defaults.py b/test/sql/defaults.py index c29ffa3b3..da23a67a2 100644 --- a/test/sql/defaults.py +++ b/test/sql/defaults.py @@ -243,6 +243,34 @@ class DefaultTest(PersistTest): finally: testbase.db.execute("drop table speedy_users", None) +class PKDefaultTest(PersistTest): + def setUpAll(self): + global metadata, t1, t2 + + metadata = MetaData(testbase.db) + + t2 = Table('t2', metadata, + Column('nextid', Integer)) + + t1 = Table('t1', metadata, + Column('id', Integer, primary_key=True, default=select([func.max(t2.c.nextid)]).as_scalar()), + Column('data', String(30))) + + metadata.create_all() + + def tearDownAll(self): + metadata.drop_all() + + def test_basic(self): + t2.insert().execute(nextid=1) + r = t1.insert().execute(data='hi') + assert r.last_inserted_ids() == [1] + + t2.insert().execute(nextid=2) + r = t1.insert().execute(data='there') + assert r.last_inserted_ids() == [2] + + class AutoIncrementTest(PersistTest): def setUp(self): global aitable, aimeta |
