Fixed Item Loader bug that was preventing values that evaluate to False from being loaded. Patch contributed by Anibal Pacheco. Closes #174

This commit is contained in:
Pablo Hoffman 2010-08-22 22:07:44 -03:00
parent 254d517da1
commit e189861b46
2 changed files with 7 additions and 2 deletions

View File

@ -29,7 +29,7 @@ class ItemLoader(object):
def add_value(self, field_name, value, *processors, **kw):
value = self.get_value(value, *processors, **kw)
if not value:
if value is None:
return
if not field_name:
for k,v in value.iteritems():
@ -39,7 +39,7 @@ class ItemLoader(object):
def replace_value(self, field_name, value, *processors, **kw):
value = self.get_value(value, *processors, **kw)
if not value:
if value is None:
return
if not field_name:
for k,v in value.iteritems():

View File

@ -68,6 +68,11 @@ class ItemLoaderTest(unittest.TestCase):
il.add_value(None, u'Jim', lambda x: {'name': x})
self.assertEqual(il.get_collected_values('name'), [u'Marta', u'Pepe', u'Jim'])
def test_add_zero(self):
il = NameItemLoader()
il.add_value('name', 0)
self.assertEqual(il.get_collected_values('name'), [0])
def test_replace_value(self):
il = TestItemLoader()
il.replace_value('name', u'marta')