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
|
self.encoding = encoding
|
||||||
|
|
||||||
def serialize(self, node, appstruct):
|
def serialize(self, node, appstruct):
|
||||||
if appstruct is null:
|
if not appstruct:
|
||||||
return null
|
return null
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -1307,7 +1307,7 @@ class Date(SchemaType):
|
|||||||
err_template = _('Invalid date')
|
err_template = _('Invalid date')
|
||||||
|
|
||||||
def serialize(self, node, appstruct):
|
def serialize(self, node, appstruct):
|
||||||
if appstruct is null:
|
if not appstruct:
|
||||||
return null
|
return null
|
||||||
|
|
||||||
if isinstance(appstruct, datetime.datetime):
|
if isinstance(appstruct, datetime.datetime):
|
||||||
@@ -1383,7 +1383,7 @@ class Time(SchemaType):
|
|||||||
err_template = _('Invalid time')
|
err_template = _('Invalid time')
|
||||||
|
|
||||||
def serialize(self, node, appstruct):
|
def serialize(self, node, appstruct):
|
||||||
if appstruct is null:
|
if not appstruct:
|
||||||
return null
|
return null
|
||||||
|
|
||||||
if isinstance(appstruct, datetime.datetime):
|
if isinstance(appstruct, datetime.datetime):
|
||||||
|
@@ -1078,6 +1078,14 @@ class TestString(unittest.TestCase):
|
|||||||
result = typ.serialize(node, null)
|
result = typ.serialize(node, null)
|
||||||
self.assertEqual(result, 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):
|
def test_serialize_uncooperative(self):
|
||||||
val = Uncooperative()
|
val = Uncooperative()
|
||||||
node = DummySchemaNode(None)
|
node = DummySchemaNode(None)
|
||||||
@@ -1677,6 +1685,14 @@ class TestDate(unittest.TestCase):
|
|||||||
result = typ.serialize(node, val)
|
result = typ.serialize(node, val)
|
||||||
self.assertEqual(result, colander.null)
|
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):
|
def test_serialize_with_garbage(self):
|
||||||
typ = self._makeOne()
|
typ = self._makeOne()
|
||||||
node = DummySchemaNode(None)
|
node = DummySchemaNode(None)
|
||||||
@@ -1762,6 +1778,14 @@ class TestTime(unittest.TestCase):
|
|||||||
result = typ.serialize(node, val)
|
result = typ.serialize(node, val)
|
||||||
self.assertEqual(result, colander.null)
|
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):
|
def test_serialize_with_garbage(self):
|
||||||
typ = self._makeOne()
|
typ = self._makeOne()
|
||||||
node = DummySchemaNode(None)
|
node = DummySchemaNode(None)
|
||||||
|
Reference in New Issue
Block a user