summaryrefslogtreecommitdiff
path: root/test/sql/test_case_statement.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-08-03 14:06:41 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-08-03 14:06:41 -0400
commit96837098cdafb0b53d0bd8c480da93330d2c1806 (patch)
tree9c2bbcd25c3df1c278cbfa302477dbc442272440 /test/sql/test_case_statement.py
parent54feab41f9fc81966da1f6e7bc35344c8ba5f604 (diff)
downloadsqlalchemy-96837098cdafb0b53d0bd8c480da93330d2c1806.tar.gz
- the text() construct, if placed in a column
oriented situation, will at least return NULLTYPE for its type instead of None, allowing it to be used a little more freely for ad-hoc column expressions than before. literal_column() is still the better choice, however.
Diffstat (limited to 'test/sql/test_case_statement.py')
-rw-r--r--test/sql/test_case_statement.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/test/sql/test_case_statement.py b/test/sql/test_case_statement.py
index 3f3abe7e1..645822fa7 100644
--- a/test/sql/test_case_statement.py
+++ b/test/sql/test_case_statement.py
@@ -1,4 +1,4 @@
-from sqlalchemy.test.testing import assert_raises, assert_raises_message
+from sqlalchemy.test.testing import assert_raises, assert_raises_message, eq_
import sys
from sqlalchemy import *
from sqlalchemy.test import *
@@ -99,7 +99,25 @@ class CaseTest(TestBase, AssertsCompiledSQL):
self.assert_compile(case([("x", "y")], value=t.c.col1), "CASE test.col1 WHEN :param_1 THEN :param_2 END")
self.assert_compile(case([(t.c.col1==7, "y")], else_="z"), "CASE WHEN (test.col1 = :col1_1) THEN :param_1 ELSE :param_2 END")
-
+
+ def test_text_doesnt_explode(self):
+
+ for s in [
+ select([case([(info_table.c.info == 'pk_4_data',
+ text("'yes'"))], else_=text("'no'"
+ ))]).order_by(info_table.c.info),
+
+ select([case([(info_table.c.info == 'pk_4_data',
+ literal_column("'yes'"))], else_=literal_column("'no'"
+ ))]).order_by(info_table.c.info),
+
+ ]:
+ eq_(s.execute().fetchall(), [
+ (u'no', ), (u'no', ), (u'no', ), (u'yes', ),
+ (u'no', ), (u'no', ),
+ ])
+
+
@testing.fails_on('firebird', 'FIXME: unknown')
@testing.fails_on('maxdb', 'FIXME: unknown')