From: Mike Bayer Date: Wed, 15 Dec 2010 17:21:55 +0000 (-0500) Subject: - we shouldn't be raising warnings on non-unicode for String type, X-Git-Tag: rel_0_7b1~158^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77649e67480884a2ed9107a45b344d9b8a52303d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - we shouldn't be raising warnings on non-unicode for String type, even if convert_unicode=True --- diff --git a/test/sql/test_types.py b/test/sql/test_types.py index 3d9be543c7..a986c622a2 100644 --- a/test/sql/test_types.py +++ b/test/sql/test_types.py @@ -474,12 +474,16 @@ class UnicodeTest(TestBase, AssertsExecutionResults): assert select([unicode_table.c.unicode_varchar]).scalar() == u'' def test_unicode_warnings(self): - """test the warnings raised when SQLA must coerce unicode binds.""" + """test the warnings raised when SQLA must coerce unicode binds, + *and* is using the Unicode type. + + """ unicodedata = u"Alors vous imaginez ma surprise, au lever du jour, quand "\ u"une drôle de petit voix m’a réveillé. "\ u"Elle disait: « S’il vous plaît… dessine-moi un mouton! »" - + + # using Unicode explicly - warning should be emitted u = Unicode() uni = u.dialect_impl(testing.db.dialect).bind_processor(testing.db.dialect) if testing.db.dialect.supports_unicode_binds: @@ -503,16 +507,21 @@ class UnicodeTest(TestBase, AssertsExecutionResults): eq_(uni(unicodedata), unicodedata.encode('utf-8')) + # using convert unicode at engine level - + # this should not be raising a warning unicode_engine = engines.utf8_engine(options={'convert_unicode':True,}) unicode_engine.dialect.supports_unicode_binds = False s = String() uni = s.dialect_impl(unicode_engine.dialect).bind_processor(unicode_engine.dialect) # Py3K + # this is not the unicode type - no warning + #uni(b'x') #assert_raises(exc.SAWarning, uni, b'x') #assert isinstance(uni(unicodedata), bytes) # Py2K - assert_raises(exc.SAWarning, uni, 'x') + # this is not the unicode type - no warning + uni('x') assert isinstance(uni(unicodedata), str) # end Py2K