diff --git a/scrapy/trunk/scrapy/tests/test_itemadaptor.py b/scrapy/trunk/scrapy/tests/test_itemadaptor.py index a72b899f7..df858adb6 100644 --- a/scrapy/trunk/scrapy/tests/test_itemadaptor.py +++ b/scrapy/trunk/scrapy/tests/test_itemadaptor.py @@ -1,7 +1,7 @@ import unittest import string from scrapy.contrib_exp.newitem.adaptors import adaptor, ItemAdaptor -from scrapy.contrib_exp.newitem import Item, StringField +from scrapy.contrib_exp.newitem import * class BaseItem(Item): @@ -24,10 +24,21 @@ class TestAdaptor(BaseAdaptor): class DefaultedAdaptor(BaseAdaptor): default_adaptor = lambda v: v.title() + class InheritDefaultAdaptor(DefaultedAdaptor): pass +class MultiValuedTestItem(Item): + names = MultiValuedField(StringField) + + +class MultiValuedItemAdaptor(ItemAdaptor): + item_class = MultiValuedTestItem + + names = adaptor(lambda v: v.title()) + + class ItemAdaptorTest(unittest.TestCase): def test_basic(self): @@ -92,6 +103,11 @@ class ItemAdaptorTest(unittest.TestCase): dia.name = 'marta' self.assertEqual(dia.name, 'mARTA') + def test_multiplevaluedadaptor(self): + ma = MultiValuedItemAdaptor() + ma.names = ['name1', 'name2'] + assert ma.names == ['Name1', 'Name2'] + class TreeadaptTest(unittest.TestCase):