diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-03-05 20:31:44 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-03-05 20:31:44 +0000 |
| commit | 9c4f3c0480f54e08b3aa2800ed76e89f957f8131 (patch) | |
| tree | e7cad83cbd55ff0e2a3f4103160e7e8fed6b6a2c /test/defaults.py | |
| parent | c1d0c2dffc0eedfa63de5b90addb70bfd3a81540 (diff) | |
| download | sqlalchemy-9c4f3c0480f54e08b3aa2800ed76e89f957f8131.tar.gz | |
got column onupdate working
improvement to Function so that they can more easily be called standalone without having to throw them into a select().
Diffstat (limited to 'test/defaults.py')
| -rw-r--r-- | test/defaults.py | 53 |
1 files changed, 36 insertions, 17 deletions
diff --git a/test/defaults.py b/test/defaults.py index 459b3abfe..c2c8877eb 100644 --- a/test/defaults.py +++ b/test/defaults.py @@ -7,11 +7,11 @@ from sqlalchemy import * import sqlalchemy db = testbase.db - +testbase.echo=False class DefaultTest(PersistTest): def setUpAll(self): - global t, f, ts + global t, f, ts, currenttime x = {'x':50} def mydefault(): x['x'] += 1 @@ -22,18 +22,19 @@ class DefaultTest(PersistTest): # select "count(1)" from the DB which returns different results # on different DBs + currenttime = db.func.current_date(type=Date); if is_oracle: - f = select([func.count(1) + 5], engine=db, from_obj=['DUAL']).scalar() - ts = select([func.sysdate()], engine=db, from_obj=['DUAL']).scalar() - def1 = func.sysdate() + ts = db.func.sysdate().scalar() + f = select([func.count(1) + 5], engine=db).scalar() + def1 = currenttime def2 = text("sysdate") deftype = Date elif use_function_defaults: f = select([func.count(1) + 5], engine=db).scalar() - def1 = func.current_date() + def1 = currenttime def2 = text("current_date") deftype = Date - ts = select([func.current_date()], engine=db).scalar() + ts = db.func.current_date().scalar() else: f = select([func.count(1) + 5], engine=db).scalar() def1 = def2 = "3" @@ -45,20 +46,29 @@ class DefaultTest(PersistTest): Column('col1', Integer, primary_key=True, default=mydefault), # python literal - Column('col2', String(20), default="imthedefault"), + Column('col2', String(20), default="imthedefault", onupdate="im the update"), # preexecute expression - Column('col3', Integer, default=func.count(1) + 5), + Column('col3', Integer, default=func.count(1) + 5, onupdate=func.count(1) + 14), # SQL-side default from sql expression Column('col4', deftype, PassiveDefault(def1)), # SQL-side default from literal expression - Column('col5', deftype, PassiveDefault(def2)) + Column('col5', deftype, PassiveDefault(def2)), + + # preexecute + update timestamp + Column('col6', Date, default=currenttime, onupdate=currenttime) ) t.create() - def teststandalonedefaults(self): + def tearDownAll(self): + t.drop() + + def tearDown(self): + t.delete().execute() + + def teststandalone(self): x = t.c.col1.default.execute() y = t.c.col2.default.execute() z = t.c.col3.default.execute() @@ -66,18 +76,27 @@ class DefaultTest(PersistTest): self.assert_(y == 'imthedefault') self.assert_(z == 6) - def testinsertdefaults(self): + def testinsert(self): t.insert().execute() self.assert_(t.engine.lastrow_has_defaults()) t.insert().execute() t.insert().execute() - - l = t.select().execute() - self.assert_(l.fetchall() == [(51, 'imthedefault', f, ts, ts), (52, 'imthedefault', f, ts, ts), (53, 'imthedefault', f, ts, ts)]) - def tearDownAll(self): - t.drop() + ctexec = currenttime.scalar() + self.echo("Currenttime "+ repr(ctexec)) + l = t.select().execute() + self.assert_(l.fetchall() == [(51, 'imthedefault', f, ts, ts, ctexec), (52, 'imthedefault', f, ts, ts, ctexec), (53, 'imthedefault', f, ts, ts, ctexec)]) + def testupdate(self): + t.insert().execute() + pk = t.engine.last_inserted_ids()[0] + t.update(t.c.col1==pk).execute(col4=None, col5=None) + ctexec = currenttime.scalar() + self.echo("Currenttime "+ repr(ctexec)) + l = t.select(t.c.col1==pk).execute() + l = l.fetchone() + self.assert_(l == (pk, 'im the update', 15, None, None, ctexec)) + class SequenceTest(PersistTest): def setUpAll(self): |
