ItemLoader: added one more test and improved other test names

This commit is contained in:
Pablo Hoffman 2009-08-05 11:38:01 -03:00
parent 7bc7af0162
commit a23ff37050
2 changed files with 17 additions and 4 deletions

View File

@ -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)

View File

@ -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'])