Fix scalar coercion, refs #173

This commit is contained in:
Konsta Vesterinen
2016-01-14 18:26:59 +02:00
parent a1cbd7e0f9
commit 9d6cbf0c8d
4 changed files with 14 additions and 3 deletions

View File

@@ -4,6 +4,12 @@ Changelog
Here you can see the full list of changes between each SQLAlchemy-Utils release. Here you can see the full list of changes between each SQLAlchemy-Utils release.
0.31.5 (2015-01-14)
^^^^^^^^^^^^^^^^^^^
- Fixed scalar parsing of LocaleType (#173)
0.31.4 (2015-12-06) 0.31.4 (2015-12-06)
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^

View File

@@ -93,4 +93,4 @@ from .types import ( # noqa
WeekDaysType WeekDaysType
) )
__version__ = '0.31.4' __version__ = '0.31.5'

View File

@@ -46,7 +46,7 @@ class LocaleType(types.TypeDecorator, ScalarCoercible):
user.locale = 'de_DE' user.locale = 'de_DE'
user.locale # Locale('de_DE') user.locale # Locale('de', territory='DE')
""" """
@@ -71,5 +71,5 @@ class LocaleType(types.TypeDecorator, ScalarCoercible):
def _coerce(self, value): def _coerce(self, value):
if value is not None and not isinstance(value, babel.Locale): if value is not None and not isinstance(value, babel.Locale):
return babel.Locale(value) return babel.Locale.parse(value)
return value return value

View File

@@ -36,6 +36,11 @@ class TestLocaleType(TestCase):
assert self.session.query(self.User.locale).first()[0] == ko_kr assert self.session.query(self.User.locale).first()[0] == ko_kr
def test_coerce_territory_parsing(self):
user = self.User()
user.locale = 'ko_KR'
assert user.locale == locale.babel.Locale(u'ko', territory=u'KR')
def test_scalar_attributes_get_coerced_to_objects(self): def test_scalar_attributes_get_coerced_to_objects(self):
user = self.User(locale='en_US') user = self.User(locale='en_US')