Merge pull request #78 from MontmereLimited/master
TimezoneType should be Unicode, not CHAR(50)
This commit is contained in:
8
.gitignore
vendored
8
.gitignore
vendored
@@ -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
|
||||
*~
|
||||
|
2
setup.py
2
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'],
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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 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
|
||||
|
Reference in New Issue
Block a user