]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
further fixes to sqlite booleans, weren't working as defaults
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 29 Oct 2006 02:40:27 +0000 (02:40 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 29 Oct 2006 02:40:27 +0000 (02:40 +0000)
CHANGES
lib/sqlalchemy/databases/sqlite.py
test/sql/defaults.py

diff --git a/CHANGES b/CHANGES
index bfcf195c1c13c3340c9709aed048ba625f576410..9b17f1648ac43eb26665f9f5905f5d7cb00ab663 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,7 @@
 loaded already.  this can be turned off (i.e. the old behavior) by setting 
 passive_deletes=True on a relation().
 - MySQL catches exception on "describe" and reports as NoSuchTableError
+- further fixes to sqlite booleans, weren't working as defaults
 
 0.3.0
 - General:
index 557441254a1147c4f6851d36bed5fa855690704e..c76149d7bc258fb1bf3f444de7441eb581d91bf9 100644 (file)
@@ -85,6 +85,8 @@ class SLBoolean(sqltypes.Boolean):
     def get_col_spec(self):
         return "BOOLEAN"
     def convert_bind_param(self, value, dialect):
+        if value is None:
+            return None
         return value and 1 or 0
     def convert_result_value(self, value, dialect):
         if value is None:
index 57de15c914c9d2ca1bc9d905f100eba3d9fb6034..d5aac19fd1b1ccbc474929dcea62b4a38f686bc7 100644 (file)
@@ -63,7 +63,10 @@ class DefaultTest(PersistTest):
             Column('col5', deftype, PassiveDefault(def2)),
             
             # preexecute + update timestamp
-            Column('col6', Date, default=currenttime, onupdate=currenttime)
+            Column('col6', Date, default=currenttime, onupdate=currenttime),
+            
+            Column('boolcol1', Boolean, default=True),
+            Column('boolcol2', Boolean, default=False)
         )
         t.create()
 
@@ -93,7 +96,7 @@ class DefaultTest(PersistTest):
         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)])
+        self.assert_(l.fetchall() == [(51, 'imthedefault', f, ts, ts, ctexec, True, False), (52, 'imthedefault', f, ts, ts, ctexec, True, False), (53, 'imthedefault', f, ts, ts, ctexec, True, False)])
 
     def testinsertvalues(self):
         t.insert(values={'col3':50}).execute()
@@ -109,7 +112,7 @@ class DefaultTest(PersistTest):
         self.echo("Currenttime "+ repr(ctexec))
         l = t.select(t.c.col1==pk).execute()
         l = l.fetchone()
-        self.assert_(l == (pk, 'im the update', f2, None, None, ctexec))
+        self.assert_(l == (pk, 'im the update', f2, None, None, ctexec, True, False))
         # mysql/other db's return 0 or 1 for count(1)
         self.assert_(14 <= f2 <= 15)