diff options
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') |
