diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-09-23 17:21:56 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-09-23 17:21:56 +0000 |
commit | 372a8d76a61649e7952ec9a465c731aa00352363 (patch) | |
tree | 0f5411fca45c46f671fea327fbcc897a6c0030ac /test/sql/defaults.py | |
parent | 9047fab83bd1bd21bed2f1857cb35679c75712f3 (diff) | |
download | sqlalchemy-372a8d76a61649e7952ec9a465c731aa00352363.tar.gz |
- added autoincrement=True to Column; will disable schema generation
of SERIAL/AUTO_INCREMENT/identity seq for postgres/mysql/mssql if
explicitly set to False. #303
Diffstat (limited to 'test/sql/defaults.py')
-rw-r--r-- | test/sql/defaults.py | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/test/sql/defaults.py b/test/sql/defaults.py index 57b4388a1..57de15c91 100644 --- a/test/sql/defaults.py +++ b/test/sql/defaults.py @@ -120,12 +120,44 @@ class DefaultTest(PersistTest): l = t.select(t.c.col1==pk).execute() l = l.fetchone() self.assert_(l['col3'] == 55) - -class SequenceTest(PersistTest): +class AutoIncrementTest(PersistTest): + @testbase.supported('postgres', 'mysql') + def testnonautoincrement(self): + meta = BoundMetaData(testbase.db) + nonai_table = Table("aitest", meta, + Column('id', Integer, autoincrement=False, primary_key=True), + Column('data', String(20))) + nonai_table.create() + try: + try: + # postgres will fail on first row, mysql fails on second row + nonai_table.insert().execute(data='row 1') + nonai_table.insert().execute(data='row 2') + assert False + except exceptions.SQLError, e: + print "Got exception", str(e) + assert True + + nonai_table.insert().execute(id=1, data='row 1') + finally: + nonai_table.drop() + + def testwithautoincrement(self): + meta = BoundMetaData(testbase.db) + table = Table("aitest", meta, + Column('id', Integer, primary_key=True), + Column('data', String(20))) + table.create() + try: + table.insert().execute(data='row 1') + table.insert().execute(data='row 2') + finally: + table.drop() + +class SequenceTest(PersistTest): + @testbase.supported('postgres', 'oracle') def setUpAll(self): - if testbase.db.engine.name != 'postgres' and testbase.db.engine.name != 'oracle': - return global cartitems cartitems = Table("cartitems", db, Column("cart_id", Integer, Sequence('cart_id_seq'), primary_key=True), @@ -159,9 +191,8 @@ class SequenceTest(PersistTest): x = cartitems.c.cart_id.sequence.execute() self.assert_(1 <= x <= 4) + @testbase.supported('postgres', 'oracle') def tearDownAll(self): - if testbase.db.engine.name != 'postgres' and testbase.db.engine.name != 'oracle': - return cartitems.drop() if __name__ == "__main__": |