mirror of https://github.com/scrapy/scrapy.git
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:
parent
254d517da1
commit
e189861b46
|
|
@ -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():
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
Loading…
Reference in New Issue