From dc83308c28e38f0be1bbfd46fa837f165f8aa73f Mon Sep 17 00:00:00 2001 From: Hong Minhee Date: Tue, 8 Sep 2015 23:12:43 +0900 Subject: [PATCH] Fix locale territory parsing --- sqlalchemy_utils/types/locale.py | 2 +- tests/types/test_locale.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sqlalchemy_utils/types/locale.py b/sqlalchemy_utils/types/locale.py index fccc7d2..6751a96 100644 --- a/sqlalchemy_utils/types/locale.py +++ b/sqlalchemy_utils/types/locale.py @@ -67,7 +67,7 @@ class LocaleType(types.TypeDecorator, ScalarCoercible): def process_result_value(self, value, dialect): if value is not None: - return babel.Locale(value) + return babel.Locale.parse(value) def _coerce(self, value): if value is not None and not isinstance(value, babel.Locale): diff --git a/tests/types/test_locale.py b/tests/types/test_locale.py index 573aa3d..106a211 100644 --- a/tests/types/test_locale.py +++ b/tests/types/test_locale.py @@ -28,6 +28,14 @@ class TestLocaleType(TestCase): user = self.session.query(self.User).first() + def test_territory_parsing(self): + ko_kr = locale.babel.Locale(u'ko', territory=u'KR') + user = self.User(locale=ko_kr) + self.session.add(user) + self.session.commit() + + assert self.session.query(self.User.locale).first()[0] == ko_kr + def test_scalar_attributes_get_coerced_to_objects(self): user = self.User(locale='en_US')