summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-10-29 02:40:27 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-10-29 02:40:27 +0000
commit4273dd4cfe3bca1500c3d0263100cd4cedef462e (patch)
treeb7c4417e94eac7bfcc1e8a9cd3ac3ee360c5518e
parent944f12bad027d01230b07d0d447d325d747f3897 (diff)
downloadsqlalchemy-4273dd4cfe3bca1500c3d0263100cd4cedef462e.tar.gz
further fixes to sqlite booleans, weren't working as defaults
-rw-r--r--CHANGES1
-rw-r--r--lib/sqlalchemy/databases/sqlite.py2
-rw-r--r--test/sql/defaults.py9
3 files changed, 9 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index bfcf195c1..9b17f1648 100644
--- 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:
diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py
index 557441254..c76149d7b 100644
--- a/lib/sqlalchemy/databases/sqlite.py
+++ b/lib/sqlalchemy/databases/sqlite.py
@@ -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:
diff --git a/test/sql/defaults.py b/test/sql/defaults.py
index 57de15c91..d5aac19fd 100644
--- a/test/sql/defaults.py
+++ b/test/sql/defaults.py
@@ -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)