]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fixes: #4782
authorLeonel Atencio <leo.atencio@gmail.com>
Fri, 26 Jul 2019 18:42:35 +0000 (13:42 -0500)
committerLeonel Atencio <leo.atencio@gmail.com>
Fri, 26 Jul 2019 18:42:35 +0000 (13:42 -0500)
Also, not ntirely sure this is  the right place for the test.

test/dialect/mssql/test_query.py

index 4ecf0634c962a626dcfabee55c2fac0fd8d23a1c..083f853d20d059a5173bb4af73b9b4188be0afe5 100644 (file)
@@ -17,6 +17,7 @@ from sqlalchemy import Table
 from sqlalchemy import testing
 from sqlalchemy import util
 from sqlalchemy.databases import mssql
+from sqlalchemy.dialects.mssql.base import Try_Cast
 from sqlalchemy.sql import column
 from sqlalchemy.sql import table
 from sqlalchemy.testing import AssertsCompiledSQL
@@ -413,6 +414,25 @@ class QueryTest(testing.AssertsExecutionResults, fixtures.TestBase):
             )
         )
 
+    @testing.provide_metadata
+    def test_try_cast(self):
+        engine = engines.testing_engine()
+        metadata = self.metadata
+        t1 = Table(
+            "t1",
+            metadata,
+            Column("id", Integer, primary_key=True),
+            implicit_returning=False,
+        )
+        metadata.create_all(engine)
+
+        with self.sql_execution_asserter(engine) as asserter:
+            engine.execute(t1.select([Try_Cast(t1.id, Integer)]))
+
+        asserter.assert_(
+            CursorSQL("SELECT TRY_CAST(id AS Integer) FROM t1"),
+        )
+
     @testing.provide_metadata
     def test_insertid_schema(self):
         meta = self.metadata