Merge pull request #78 from MontmereLimited/master

TimezoneType should be Unicode, not CHAR(50)
This commit is contained in:
Konsta Vesterinen
2014-04-07 15:06:57 +03:00
4 changed files with 24 additions and 13 deletions

8
.gitignore vendored
View File

@@ -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
*~

View File

@@ -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'],

View File

@@ -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

View File

@@ -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