From acc31b52eaea57a0def9bcf370717c88f54c1ba4 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Thu, 24 Oct 2013 09:01:04 +0300 Subject: [PATCH] Added tests for LocaleType --- tests/types/test_locale.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/types/test_locale.py diff --git a/tests/types/test_locale.py b/tests/types/test_locale.py new file mode 100644 index 0000000..9eaa03a --- /dev/null +++ b/tests/types/test_locale.py @@ -0,0 +1,37 @@ +from pytest import mark, raises +import sqlalchemy as sa +from sqlalchemy_utils.types import locale +from tests import TestCase + + +@mark.skipif('locale.babel is None') +class TestLocaleType(TestCase): + def create_models(self): + class User(self.Base): + __tablename__ = 'user' + id = sa.Column(sa.Integer, primary_key=True) + locale = sa.Column(locale.LocaleType) + + def __repr__(self): + return 'User(%r)' % self.id + + self.User = User + + def test_parameter_processing(self): + user = self.User( + locale=locale.babel.Locale(u'fi') + ) + + self.session.add(user) + self.session.commit() + + user = self.session.query(self.User).first() + + def test_scalar_attributes_get_coerced_to_objects(self): + user = self.User(locale='en_US') + + assert isinstance(user.locale, locale.babel.Locale) + + def test_unknown_locale_throws_exception(self): + with raises(locale.babel.UnknownLocaleError): + self.User(locale=u'unknown')