]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
adding windows-appropriate levels of pain to unicode handling
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 12 Mar 2010 03:10:25 +0000 (22:10 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 12 Mar 2010 03:10:25 +0000 (22:10 -0500)
lib/sqlalchemy/engine/default.py
test/sql/test_types.py

index 454d2a593e76dd04d4b56f9d424d370d2090db1c..87616ed4c8f1eb1d537873f0afa157bc227a93e2 100644 (file)
@@ -154,7 +154,7 @@ class DefaultDialect(base.Dialect):
             str(
                 expression.select( 
                 [expression.cast(
-                    expression.literal_column("'test unicode returns'"),sqltypes.VARCHAR(60))
+                    expression.literal_column("'test unicode returns'"),sqltypes.Unicode(60))
                 ]).compile(dialect=self)
             )
         )
@@ -162,7 +162,7 @@ class DefaultDialect(base.Dialect):
         row = cursor.fetchone()
         unicode_for_unicode = isinstance(row[0], unicode)
         cursor.close()
-        
+       
         if unicode_for_unicode and not unicode_for_varchar:
             return "conditional"
         else:
index fa8254a7a4cefc5d811b8aa5ee51505bed325ee7..af8881a4eed47821f0594d5356051c88ed06cce4 100644 (file)
@@ -311,7 +311,11 @@ class UnicodeTest(TestBase, AssertsExecutionResults):
     
     def test_native_unicode(self):
         """assert expected values for 'native unicode' mode"""
-        
+       
+        if testing.against('mssql+pyodbc') and not testing.db.dialect.freetds:
+            assert testing.db.dialect.returns_unicode_strings == 'conditional'
+            return
         assert testing.db.dialect.returns_unicode_strings == \
             ((testing.db.name, testing.db.driver) in \
             (
@@ -518,6 +522,14 @@ class UnicodeTest(TestBase, AssertsExecutionResults):
                       'drole de petit voix m?a reveille. Elle disait: < S?il vous plait? '
                       'dessine-moi un mouton! >'
                  )
+            elif testing.against('mssql+pyodbc') and not testing.db.dialect.freetds:
+                # TODO: no clue what this is
+                eq_(
+                      x,
+                      u'Alors vous imaginez ma surprise, au lever du jour, quand une '
+                      u'drle de petit voix ma rveill. Elle disait:  Sil vous plat '
+                      u'dessine-moi un mouton! '
+                )
             elif engine.dialect.returns_unicode_strings:
                 eq_(x, unicodedata)
             else: