From be5487cdb13b0bb350d3acaa327ef79e9b0814ed Mon Sep 17 00:00:00 2001 From: "Stephen J. Fuhry" Date: Sat, 5 Apr 2014 17:19:46 +0000 Subject: [PATCH 1/4] TimezoneType should be Unicode, not CHAR --- sqlalchemy_utils/types/timezone.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sqlalchemy_utils/types/timezone.py b/sqlalchemy_utils/types/timezone.py index 43ebb47..0fc51cd 100644 --- a/sqlalchemy_utils/types/timezone.py +++ b/sqlalchemy_utils/types/timezone.py @@ -23,7 +23,7 @@ class TimezoneType(types.TypeDecorator, ScalarCoercible): timezone = sa.Column(TimezoneType(backend='pytz')) """ - impl = types.CHAR(50) + impl = types.Unicode(50) python_type = None From c34747e8a74d274c81966c0248f99cbd100c4884 Mon Sep 17 00:00:00 2001 From: "Stephen J. Fuhry" Date: Sat, 5 Apr 2014 15:21:47 -0400 Subject: [PATCH 2/4] unit test for dateutil and pytz --- tests/types/test_timezone.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tests/types/test_timezone.py b/tests/types/test_timezone.py index 3f6c67d..fe5e0c8 100644 --- a/tests/types/test_timezone.py +++ b/tests/types/test_timezone.py @@ -4,21 +4,18 @@ import sqlalchemy as sa from sqlalchemy_utils.types import timezone from tests import TestCase - -try: - import dateutil - -except ImportError: - dateutil = None +import dateutil +import pytz -@mark.skipif('dateutil is None') class TestTimezoneType(TestCase): def create_models(self): class Visitor(self.Base): __tablename__ = 'document' id = sa.Column(sa.Integer, primary_key=True) - timezone = sa.Column(timezone.TimezoneType) + timezone_dateutil = sa.Column(timezone.TimezoneType( + backend='dateutil')) + timezone_pytz = sa.Column(timezone.TimezoneType(backend='pytz')) def __repr__(self): return 'Visitor(%r)' % self.id @@ -27,13 +24,17 @@ class TestTimezoneType(TestCase): def test_parameter_processing(self): visitor = self.Visitor( - timezone=u'America/Los_Angeles' + timezone_dateutil=u'America/Los_Angeles', + timezone_pytz=u'America/Los_Angeles' ) self.session.add(visitor) self.session.commit() - visitor = self.session.query(self.Visitor).filter_by( - timezone='America/Los_Angeles').first() + visitor_dateutil = self.session.query(self.Visitor).filter_by( + timezone_dateutil='America/Los_Angeles').first() + visitor_pytz = self.session.query(self.Visitor).filter_by( + timezone_pytz='America/Los_Angeles').first() - assert visitor is not None + assert visitor_dateutil is not None + assert visitor_pytz is not None From e2a11c7b76d73401937b27e3bead4ab83d1275ce Mon Sep 17 00:00:00 2001 From: "Stephen J. Fuhry" Date: Sat, 5 Apr 2014 15:22:07 -0400 Subject: [PATCH 3/4] gitignore vim temp files --- .gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index a015a2d..95825ec 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,11 @@ nosetests.xml .mr.developer.cfg .project .pydevproject + +# vim +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +*.un~ +Session.vim +.netrwhist +*~ From dec8daeb9d2bb9031afac1447e6a931870ac5146 Mon Sep 17 00:00:00 2001 From: "Stephen J. Fuhry" Date: Sat, 5 Apr 2014 15:30:28 -0400 Subject: [PATCH 4/4] pytz & dateutil should be available for unit tests --- setup.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.py b/setup.py index 8238066..d1bbf8a 100644 --- a/setup.py +++ b/setup.py @@ -19,6 +19,8 @@ extras_require = { 'docutils>=0.10', 'flexmock>=0.9.7', 'psycopg2>=2.5.1', + 'pytz>=2014.2', + 'python-dateutil>=2.2', 'pymysql' ], 'anyjson': ['anyjson>=0.3.3'],