- (Hopefully) fix intermittent datetime-granularity-related test

failures.
This commit is contained in:
Chris McDonough
2010-04-26 14:57:21 +00:00
parent e709b6523b
commit 605f1489d7
2 changed files with 28 additions and 16 deletions

View File

@@ -4,6 +4,9 @@ Changes
Next release Next release
------------ ------------
- (Hopefully) fix intermittent datetime-granularity-related test
failures.
- Internationalized error messages. This required some changes to - Internationalized error messages. This required some changes to
error message formatting, which may impact you if you were feeding error message formatting, which may impact you if you were feeding
colander an error message template. colander an error message template.

View File

@@ -1012,6 +1012,14 @@ class TestDateTime(unittest.TestCase):
from colander import DateTime from colander import DateTime
return DateTime(*arg, **kw) return DateTime(*arg, **kw)
def _dt(self):
import datetime
return datetime.datetime(2010, 4, 26, 10, 48)
def _today(self):
import datetime
return datetime.date.today()
def test_ctor_default_tzinfo_None(self): def test_ctor_default_tzinfo_None(self):
import iso8601 import iso8601
typ = self._makeOne() typ = self._makeOne()
@@ -1033,7 +1041,7 @@ class TestDateTime(unittest.TestCase):
def test_serialize_with_date(self): def test_serialize_with_date(self):
import datetime import datetime
typ = self._makeOne() typ = self._makeOne()
date = datetime.date.today() date = self._today()
node = DummySchemaNode(None) node = DummySchemaNode(None)
result = typ.serialize(node, date) result = typ.serialize(node, date)
expected = datetime.datetime.combine(date, datetime.time()) expected = datetime.datetime.combine(date, datetime.time())
@@ -1041,19 +1049,17 @@ class TestDateTime(unittest.TestCase):
self.assertEqual(result, expected) self.assertEqual(result, expected)
def test_serialize_with_naive_datetime(self): def test_serialize_with_naive_datetime(self):
import datetime
typ = self._makeOne() typ = self._makeOne()
dt = datetime.datetime.now()
node = DummySchemaNode(None) node = DummySchemaNode(None)
dt = self._dt()
result = typ.serialize(node, dt) result = typ.serialize(node, dt)
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_tzware_datetime(self): def test_serialize_with_tzware_datetime(self):
import datetime
import iso8601 import iso8601
typ = self._makeOne() typ = self._makeOne()
dt = datetime.datetime.now() dt = self._dt()
tzinfo = iso8601.iso8601.FixedOffset(1, 0, 'myname') tzinfo = iso8601.iso8601.FixedOffset(1, 0, 'myname')
dt = dt.replace(tzinfo=tzinfo) dt = dt.replace(tzinfo=tzinfo)
node = DummySchemaNode(None) node = DummySchemaNode(None)
@@ -1064,7 +1070,7 @@ class TestDateTime(unittest.TestCase):
def test_deserialize_date(self): def test_deserialize_date(self):
import datetime import datetime
import iso8601 import iso8601
date = datetime.date.today() date = self._today()
typ = self._makeOne() typ = self._makeOne()
formatted = date.isoformat() formatted = date.isoformat()
node = DummySchemaNode(None) node = DummySchemaNode(None)
@@ -1081,10 +1087,9 @@ class TestDateTime(unittest.TestCase):
self.failUnless('cannot be parsed' in e.msg) self.failUnless('cannot be parsed' in e.msg)
def test_deserialize_success(self): def test_deserialize_success(self):
import datetime
import iso8601 import iso8601
typ = self._makeOne() typ = self._makeOne()
dt = datetime.datetime.now() dt = self._dt()
tzinfo = iso8601.iso8601.FixedOffset(1, 0, 'myname') tzinfo = iso8601.iso8601.FixedOffset(1, 0, 'myname')
dt = dt.replace(tzinfo=tzinfo) dt = dt.replace(tzinfo=tzinfo)
iso = dt.isoformat() iso = dt.isoformat()
@@ -1097,6 +1102,14 @@ class TestDate(unittest.TestCase):
from colander import Date from colander import Date
return Date(*arg, **kw) return Date(*arg, **kw)
def _dt(self):
import datetime
return datetime.datetime(2010, 4, 26, 10, 48)
def _today(self):
import datetime
return datetime.date.today()
def test_serialize_with_garbage(self): def test_serialize_with_garbage(self):
typ = self._makeOne() typ = self._makeOne()
node = DummySchemaNode(None) node = DummySchemaNode(None)
@@ -1104,18 +1117,16 @@ class TestDate(unittest.TestCase):
self.assertEqual(e.msg.interpolate(), '"garbage" is not a date object') self.assertEqual(e.msg.interpolate(), '"garbage" is not a date object')
def test_serialize_with_date(self): def test_serialize_with_date(self):
import datetime
typ = self._makeOne() typ = self._makeOne()
date = datetime.date.today() date = self._today()
node = DummySchemaNode(None) node = DummySchemaNode(None)
result = typ.serialize(node, date) result = typ.serialize(node, date)
expected = date.isoformat() expected = date.isoformat()
self.assertEqual(result, expected) self.assertEqual(result, expected)
def test_serialize_with_datetime(self): def test_serialize_with_datetime(self):
import datetime
typ = self._makeOne() typ = self._makeOne()
dt = datetime.datetime.now() dt = self._dt()
node = DummySchemaNode(None) node = DummySchemaNode(None)
result = typ.serialize(node, dt) result = typ.serialize(node, dt)
expected = dt.date().isoformat() expected = dt.date().isoformat()
@@ -1148,17 +1159,15 @@ class TestDate(unittest.TestCase):
self.assertEqual(result, 'abc') self.assertEqual(result, 'abc')
def test_deserialize_success_date(self): def test_deserialize_success_date(self):
import datetime
typ = self._makeOne() typ = self._makeOne()
date = datetime.date.today() date = self._today()
iso = date.isoformat() iso = date.isoformat()
node = DummySchemaNode(None) node = DummySchemaNode(None)
result = typ.deserialize(node, iso) result = typ.deserialize(node, iso)
self.assertEqual(result.isoformat(), iso) self.assertEqual(result.isoformat(), iso)
def test_deserialize_success_datetime(self): def test_deserialize_success_datetime(self):
import datetime dt = self._dt()
dt = datetime.datetime.now()
typ = self._makeOne() typ = self._makeOne()
iso = dt.isoformat() iso = dt.isoformat()
node = DummySchemaNode(None) node = DummySchemaNode(None)