diff --git a/CHANGES.rst b/CHANGES.rst index 85ab4d5..bdce0ce 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,12 @@ Changelog 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) ^^^^^^^^^^^^^^^^^^^ diff --git a/sqlalchemy_utils/__init__.py b/sqlalchemy_utils/__init__.py index 8396aae..4438066 100644 --- a/sqlalchemy_utils/__init__.py +++ b/sqlalchemy_utils/__init__.py @@ -93,4 +93,4 @@ from .types import ( # noqa WeekDaysType ) -__version__ = '0.31.4' +__version__ = '0.31.5' diff --git a/sqlalchemy_utils/types/locale.py b/sqlalchemy_utils/types/locale.py index 6751a96..7948575 100644 --- a/sqlalchemy_utils/types/locale.py +++ b/sqlalchemy_utils/types/locale.py @@ -46,7 +46,7 @@ class LocaleType(types.TypeDecorator, ScalarCoercible): 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): if value is not None and not isinstance(value, babel.Locale): - return babel.Locale(value) + return babel.Locale.parse(value) return value diff --git a/tests/types/test_locale.py b/tests/types/test_locale.py index 106a211..7360a22 100644 --- a/tests/types/test_locale.py +++ b/tests/types/test_locale.py @@ -36,6 +36,11 @@ class TestLocaleType(TestCase): 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): user = self.User(locale='en_US')