False evaluating values are now serialized to colander.null for String, Date, and Time

This commit is contained in:
Christian Neumann
2012-03-27 17:27:41 +02:00
parent 6c6849ceab
commit 3a75cb9bb3
2 changed files with 27 additions and 3 deletions

View File

@@ -901,7 +901,7 @@ class String(SchemaType):
self.encoding = encoding
def serialize(self, node, appstruct):
if appstruct is null:
if not appstruct:
return null
try:
@@ -1307,7 +1307,7 @@ class Date(SchemaType):
err_template = _('Invalid date')
def serialize(self, node, appstruct):
if appstruct is null:
if not appstruct:
return null
if isinstance(appstruct, datetime.datetime):
@@ -1383,7 +1383,7 @@ class Time(SchemaType):
err_template = _('Invalid time')
def serialize(self, node, appstruct):
if appstruct is null:
if not appstruct:
return null
if isinstance(appstruct, datetime.datetime):

View File

@@ -1078,6 +1078,14 @@ class TestString(unittest.TestCase):
result = typ.serialize(node, null)
self.assertEqual(result, null)
def test_serialize_none(self):
import colander
val = None
node = DummySchemaNode(None)
typ = self._makeOne()
result = typ.serialize(node, val)
self.assertEqual(result, colander.null)
def test_serialize_uncooperative(self):
val = Uncooperative()
node = DummySchemaNode(None)
@@ -1677,6 +1685,14 @@ class TestDate(unittest.TestCase):
result = typ.serialize(node, val)
self.assertEqual(result, colander.null)
def test_serialize_none(self):
import colander
val = None
node = DummySchemaNode(None)
typ = self._makeOne()
result = typ.serialize(node, val)
self.assertEqual(result, colander.null)
def test_serialize_with_garbage(self):
typ = self._makeOne()
node = DummySchemaNode(None)
@@ -1762,6 +1778,14 @@ class TestTime(unittest.TestCase):
result = typ.serialize(node, val)
self.assertEqual(result, colander.null)
def test_serialize_none(self):
import colander
val = None
node = DummySchemaNode(None)
typ = self._makeOne()
result = typ.serialize(node, val)
self.assertEqual(result, colander.null)
def test_serialize_with_garbage(self):
typ = self._makeOne()
node = DummySchemaNode(None)