False evaluating values are now serialized to colander.null for String, Date, and Time
This commit is contained in:
@@ -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):
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user