]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Tests for unicode columns with non-unicode defaults. See #2079.
authorTaavi Burns <taavi.burns@gmail.com>
Mon, 14 Mar 2011 18:42:11 +0000 (14:42 -0400)
committerTaavi Burns <taavi.burns@gmail.com>
Mon, 14 Mar 2011 18:42:11 +0000 (14:42 -0400)
test/sql/test_defaults.py

index 617a29edad7210f02bb5e3e4ed456a15f398c853..eeb4ebbcb87a62200c7747d492e179931f35def4 100644 (file)
@@ -5,7 +5,7 @@ from sqlalchemy.sql import select, text, literal_column
 import sqlalchemy as sa
 from test.lib import testing, engines
 from sqlalchemy import MetaData, Integer, String, ForeignKey, Boolean, exc,\
-                Sequence, func, literal
+                Sequence, func, literal, Unicode
 from sqlalchemy.types import TypeDecorator
 from test.lib.schema import Table, Column
 from test.lib.testing import eq_
@@ -934,3 +934,29 @@ class ServerDefaultsOnPKTest(testing.TestBase):
             [(5, 'data')]
         )
 
+class UnicodeDefaultsTest(testing.TestBase):
+    def test_no_default(self):
+        c = Column(Unicode(32))
+
+    def test_unicode_default(self):
+        # Py3K
+        #default = 'foo'
+        # Py2K
+        default = u'foo'
+        # end Py2K
+        c = Column(Unicode(32), default=default)
+
+    
+    def test_nonunicode_default(self):
+        # Py3K
+        #default = b'foo'
+        # Py2K
+        default = 'foo'
+        # end Py2K
+        assert_raises_message(
+            sa.exc.SAWarning,
+            "Unicode column received non-unicode default value.",
+            Column,
+            Unicode(32),
+            default=default
+        )