From 8bda81c01d90b8f0d5ad082bd7240dbb6ff94d86 Mon Sep 17 00:00:00 2001 From: Ismael Carnales Date: Tue, 10 Mar 2009 14:03:27 +0000 Subject: [PATCH] add inheritance of item and adaptors to itemadaptor test --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40972 --- scrapy/trunk/scrapy/tests/test_itemadaptor.py | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/scrapy/trunk/scrapy/tests/test_itemadaptor.py b/scrapy/trunk/scrapy/tests/test_itemadaptor.py index abd36e7e9..546547d2c 100644 --- a/scrapy/trunk/scrapy/tests/test_itemadaptor.py +++ b/scrapy/trunk/scrapy/tests/test_itemadaptor.py @@ -4,17 +4,27 @@ from scrapy.contrib_exp.newitem.adaptors import adaptor, ItemAdaptor from scrapy.contrib_exp.newitem import Item, StringField -class TestItem(Item): +class BaseItem(Item): name = StringField() + + +class TestItem(BaseItem): url = StringField() summary = StringField() -class TestAdaptor(ItemAdaptor): +class BaseAdaptor(ItemAdaptor): item_class = TestItem + + +class TestAdaptor(BaseAdaptor): name = lambda v: v.title() +class DefaultedAdaptor(BaseAdaptor): + default_adaptor = lambda v: v.title() + + class ItemAdaptorTest(unittest.TestCase): def test_basic(self): @@ -24,11 +34,7 @@ class ItemAdaptorTest(unittest.TestCase): self.assertEqual(ia.name, 'Marta') def test_defaultadaptor(self): - class DefaultedTestAdaptor(ItemAdaptor): - item_class = TestItem - default_adaptor = lambda v: v.title() - - dta = DefaultedTestAdaptor() + dta = DefaultedAdaptor() assert dta.default_adaptor dta.name = 'marta' assert dta.name == 'Marta' @@ -63,23 +69,16 @@ class ItemAdaptorTest(unittest.TestCase): self.assertEqual(ia.name, 'Marta') def test_staticmethods(self): - class ParentAdaptor(TestAdaptor): - name = adaptor(lambda v: v) - - class ChildAdaptor(ParentAdaptor): - name = adaptor(ParentAdaptor.name, string.swapcase) + class ChildAdaptor(TestAdaptor): + name = adaptor(TestAdaptor.name, string.swapcase) ia = ChildAdaptor() ia.name = 'Marta' self.assertEqual(ia.name, 'mARTA') def test_staticdefaults(self): - class ParentAdaptorDefaulted(ItemAdaptor): - item_class = TestItem - default_adaptor = lambda v: v.title() - - class ChildAdaptorDefaulted(ParentAdaptorDefaulted): - name = adaptor(ParentAdaptorDefaulted.name, string.swapcase) + class ChildAdaptorDefaulted(DefaultedAdaptor): + name = adaptor(DefaultedAdaptor.name, string.swapcase) dia = ChildAdaptorDefaulted() dia.name = 'marta'