diff --git a/scrapy/contrib/loader/__init__.py b/scrapy/contrib/loader/__init__.py index 445d72d57..a9fc8f011 100644 --- a/scrapy/contrib/loader/__init__.py +++ b/scrapy/contrib/loader/__init__.py @@ -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(): diff --git a/scrapy/tests/test_contrib_loader.py b/scrapy/tests/test_contrib_loader.py index 201362140..8a730e543 100644 --- a/scrapy/tests/test_contrib_loader.py +++ b/scrapy/tests/test_contrib_loader.py @@ -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')