mirror of https://github.com/scrapy/scrapy.git
ItemLoader: added one more test and improved other test names
This commit is contained in:
parent
7bc7af0162
commit
a23ff37050
|
|
@ -12,8 +12,9 @@ class ItemLoader(object):
|
|||
default_reducer = TakeFirst()
|
||||
|
||||
def __init__(self, **loader_args):
|
||||
self._response = loader_args.get('response')
|
||||
self._item = loader_args.setdefault('item', self.default_item_class())
|
||||
if 'item' not in loader_args:
|
||||
loader_args['item'] = self.default_item_class()
|
||||
self._item = loader_args['item']
|
||||
self._loader_args = loader_args
|
||||
self._values = defaultdict(list)
|
||||
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ class ItemLoaderTest(unittest.TestCase):
|
|||
il.add_value('name', u'marta')
|
||||
self.assertEqual(il.get_reduced_value('name'), u'marta')
|
||||
|
||||
def test_extend_expanders(self):
|
||||
def test_extend_custom_expanders(self):
|
||||
class ChildItemLoader(TestItemLoader):
|
||||
name_exp = TreeExpander(TestItemLoader.name_exp, unicode.swapcase)
|
||||
|
||||
|
|
@ -135,7 +135,7 @@ class ItemLoaderTest(unittest.TestCase):
|
|||
il.add_value('name', u'marta')
|
||||
self.assertEqual(il.get_reduced_value('name'), u'mARTA')
|
||||
|
||||
def test_staticdefaults(self):
|
||||
def test_extend_default_expanders(self):
|
||||
class ChildDefaultedItemLoader(DefaultedItemLoader):
|
||||
name_exp = TreeExpander(DefaultedItemLoader.default_expander, unicode.swapcase)
|
||||
|
||||
|
|
@ -210,6 +210,18 @@ class ItemLoaderTest(unittest.TestCase):
|
|||
il.add_value('url', u'text', key=u'val')
|
||||
self.assertEqual(il.get_reduced_value('url'), 'val')
|
||||
|
||||
def test_item_passed_to_expander_functions(self):
|
||||
def exp_func(value, loader_args):
|
||||
return loader_args['item']['name']
|
||||
|
||||
class ChildItemLoader(TestItemLoader):
|
||||
url_exp = TreeExpander(exp_func)
|
||||
|
||||
it = TestItem(name='marta')
|
||||
il = ChildItemLoader(item=it)
|
||||
il.add_value('url', u'text', key=u'val')
|
||||
self.assertEqual(il.get_reduced_value('url'), 'marta')
|
||||
|
||||
def test_add_value_on_unknown_field(self):
|
||||
il = TestItemLoader()
|
||||
self.assertRaises(KeyError, il.add_value, 'wrong_field', [u'lala', u'lolo'])
|
||||
|
|
|
|||
Loading…
Reference in New Issue