diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-08-03 14:06:41 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-08-03 14:06:41 -0400 |
| commit | 96837098cdafb0b53d0bd8c480da93330d2c1806 (patch) | |
| tree | 9c2bbcd25c3df1c278cbfa302477dbc442272440 /test/sql/test_case_statement.py | |
| parent | 54feab41f9fc81966da1f6e7bc35344c8ba5f604 (diff) | |
| download | sqlalchemy-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.py | 22 |
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') |
