Author: phd
Date: Tue Aug 20 07:25:18 2013
New Revision: 4651
Log:
Encode unicode enum values to str
Modified:
SQLObject/branches/1.5/sqlobject/col.py
SQLObject/branches/1.5/sqlobject/tests/test_enum.py
Modified: SQLObject/branches/1.5/sqlobject/col.py
==============================================================================
--- SQLObject/branches/1.5/sqlobject/col.py Tue Aug 20 07:21:21 2013 (r4650)
+++ SQLObject/branches/1.5/sqlobject/col.py Tue Aug 20 07:25:18 2013 (r4651)
@@ -964,6 +964,9 @@
def to_python(self, value, state):
if value in self.enumValues:
+ if isinstance(value, unicode):
+ dbEncoding = self.getDbEncoding(state)
+ value = value.encode(dbEncoding)
return value
elif not self.notNone and value is None:
return None
Modified: SQLObject/branches/1.5/sqlobject/tests/test_enum.py
==============================================================================
--- SQLObject/branches/1.5/sqlobject/tests/test_enum.py Tue Aug 20 07:21:21 2013 (r4650)
+++ SQLObject/branches/1.5/sqlobject/tests/test_enum.py Tue Aug 20 07:25:18 2013 (r4651)
@@ -52,3 +52,17 @@
e = EnumWithDefaultOther()
assert e.l == 'a'
+
+
+class EnumUnicode(SQLObject):
+
+ n = UnicodeCol()
+ l = EnumCol(enumValues=['a', 'b'])
+
+def testUnicode():
+ setupClass(EnumUnicode)
+
+ EnumUnicode(n=u'a', l='a')
+ EnumUnicode(n=u'b', l=u'b')
+ EnumUnicode(n=u'\u201c', l='a')
+ EnumUnicode(n=u'\u201c', l=u'b')
|