From 2ba017b14dc86bf40c109e36c8c2a1d1482b30cb Mon Sep 17 00:00:00 2001 From: Ismael Carnales Date: Wed, 11 Mar 2009 13:01:26 +0000 Subject: [PATCH] add tests for adaptation of multivaluated fields --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40984 --- scrapy/trunk/scrapy/tests/test_itemadaptor.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) 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):