Allow None as 'default_tzinfo' of DateTime.
This allows us to use DateTime without a timezone info entirely.
This commit is contained in:
@@ -1091,8 +1091,8 @@ class DateTime(SchemaType):
|
|||||||
"""
|
"""
|
||||||
err_template = _('Invalid date')
|
err_template = _('Invalid date')
|
||||||
|
|
||||||
def __init__(self, default_tzinfo=None):
|
def __init__(self, default_tzinfo=_marker):
|
||||||
if default_tzinfo is None:
|
if default_tzinfo is _marker:
|
||||||
default_tzinfo = iso8601.iso8601.Utc()
|
default_tzinfo = iso8601.iso8601.Utc()
|
||||||
self.default_tzinfo = default_tzinfo
|
self.default_tzinfo = default_tzinfo
|
||||||
|
|
||||||
|
@@ -1258,6 +1258,13 @@ class TestDateTime(unittest.TestCase):
|
|||||||
expected = dt.replace(tzinfo=typ.default_tzinfo).isoformat()
|
expected = dt.replace(tzinfo=typ.default_tzinfo).isoformat()
|
||||||
self.assertEqual(result, expected)
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
|
def test_serialize_with_none_tzinfo_naive_datetime(self):
|
||||||
|
typ = self._makeOne(default_tzinfo=None)
|
||||||
|
node = DummySchemaNode(None)
|
||||||
|
dt = self._dt()
|
||||||
|
result = typ.serialize(node, dt)
|
||||||
|
self.assertEqual(result, dt.isoformat())
|
||||||
|
|
||||||
def test_serialize_with_tzware_datetime(self):
|
def test_serialize_with_tzware_datetime(self):
|
||||||
import iso8601
|
import iso8601
|
||||||
typ = self._makeOne()
|
typ = self._makeOne()
|
||||||
@@ -1324,6 +1331,14 @@ class TestDateTime(unittest.TestCase):
|
|||||||
result = typ.deserialize(node, iso)
|
result = typ.deserialize(node, iso)
|
||||||
self.assertEqual(result.isoformat(), dt_with_tz.isoformat())
|
self.assertEqual(result.isoformat(), dt_with_tz.isoformat())
|
||||||
|
|
||||||
|
def test_deserialize_none_tzinfo(self):
|
||||||
|
typ = self._makeOne(default_tzinfo=None)
|
||||||
|
dt = self._dt()
|
||||||
|
iso = dt.isoformat()
|
||||||
|
node = DummySchemaNode(None)
|
||||||
|
result = typ.deserialize(node, iso)
|
||||||
|
self.assertEqual(result.isoformat(), dt.isoformat())
|
||||||
|
|
||||||
class TestDate(unittest.TestCase):
|
class TestDate(unittest.TestCase):
|
||||||
def _makeOne(self, *arg, **kw):
|
def _makeOne(self, *arg, **kw):
|
||||||
from colander import Date
|
from colander import Date
|
||||||
|
Reference in New Issue
Block a user