summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 22:10:25 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 22:10:25 -0500
commite66ca9edd525feb43177014d7736a79440262f3a (patch)
tree7011167add8b2f69ee1d7523cb52a9476d9e420c
parentc486f6292fa67388272f5da5c431a57181bed88d (diff)
downloadsqlalchemy-e66ca9edd525feb43177014d7736a79440262f3a.tar.gz
adding windows-appropriate levels of pain to unicode handling
-rw-r--r--lib/sqlalchemy/engine/default.py4
-rw-r--r--test/sql/test_types.py14
2 files changed, 15 insertions, 3 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index 454d2a593..87616ed4c 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -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:
diff --git a/test/sql/test_types.py b/test/sql/test_types.py
index fa8254a7a..af8881a4e 100644
--- a/test/sql/test_types.py
+++ b/test/sql/test_types.py
@@ -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: