mirror of https://github.com/scrapy/scrapy.git
moved MultiValuedField to ListField
This commit is contained in:
parent
fcb33c7988
commit
d8b85ae7ad
|
|
@ -18,10 +18,10 @@ class BaseField(object):
|
|||
return self._default
|
||||
|
||||
|
||||
class MultiValuedField(BaseField):
|
||||
class ListField(BaseField):
|
||||
def __init__(self, field_type, default=None):
|
||||
self._field = field_type()
|
||||
super(MultiValuedField, self).__init__(default)
|
||||
super(ListField, self).__init__(default)
|
||||
|
||||
def to_python(self, value):
|
||||
if hasattr(value, '__iter__'):
|
||||
|
|
@ -33,8 +33,6 @@ class MultiValuedField(BaseField):
|
|||
def from_unicode_list(self, unicode_list):
|
||||
return self.to_python(unicode_list)
|
||||
|
||||
# FIXME: temporary alias required for ItemExporters (to be removed on ListField merge)
|
||||
ListField = MultiValuedField
|
||||
|
||||
class BooleanField(BaseField):
|
||||
def to_python(self, value):
|
||||
|
|
|
|||
|
|
@ -29,12 +29,12 @@ class InheritDefaultAdaptor(DefaultedAdaptor):
|
|||
pass
|
||||
|
||||
|
||||
class MultiValuedTestItem(Item):
|
||||
names = fields.MultiValuedField(fields.TextField)
|
||||
class ListFieldTestItem(Item):
|
||||
names = fields.ListField(fields.TextField)
|
||||
|
||||
|
||||
class MultiValuedItemAdaptor(ItemAdaptor):
|
||||
item_class = MultiValuedTestItem
|
||||
class ListFieldItemAdaptor(ItemAdaptor):
|
||||
item_class = ListFieldTestItem
|
||||
|
||||
names = adaptor(lambda v: v.title())
|
||||
|
||||
|
|
@ -106,7 +106,7 @@ class ItemAdaptorTest(unittest.TestCase):
|
|||
# self.assertEqual(dia.name, u'MART')
|
||||
|
||||
def test_multiplevaluedadaptor(self):
|
||||
ma = MultiValuedItemAdaptor()
|
||||
ma = ListFieldItemAdaptor()
|
||||
ma.names = [u'name1', u'name2']
|
||||
assert ma.names == [u'Name1', u'Name2']
|
||||
|
||||
|
|
|
|||
|
|
@ -38,11 +38,11 @@ class NewItemTest(unittest.TestCase):
|
|||
self.assertRaises(TypeError, TestItem, name=set())
|
||||
|
||||
def test_multi(self):
|
||||
class TestMultiItem(Item):
|
||||
class TestListItem(Item):
|
||||
name = fields.TextField()
|
||||
names = fields.MultiValuedField(fields.TextField)
|
||||
names = fields.ListField(fields.TextField)
|
||||
|
||||
i = TestMultiItem()
|
||||
i = TestListItem()
|
||||
i['name'] = u'name'
|
||||
i['names'] = [u'name1', u'name2']
|
||||
self.assertEqual(i['names'], [u'name1', u'name2'])
|
||||
|
|
@ -337,7 +337,7 @@ class NewItemFieldsTest(unittest.TestCase):
|
|||
self.assertEqual(field.from_unicode_list([]), u'')
|
||||
self.assertEqual(field.from_unicode_list([u'hello', u'world']), u'hello world')
|
||||
|
||||
field = fields.MultiValuedField(fields.TextField)
|
||||
field = fields.ListField(fields.TextField)
|
||||
self.assertEqual(field.from_unicode_list([]), [])
|
||||
self.assertEqual(field.from_unicode_list([u'hello', u'world']), [u'hello', u'world'])
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue