diff --git a/scrapy/trunk/scrapy/http/headers.py b/scrapy/trunk/scrapy/http/headers.py index a3344e29f..010db4bae 100644 --- a/scrapy/trunk/scrapy/http/headers.py +++ b/scrapy/trunk/scrapy/http/headers.py @@ -51,7 +51,9 @@ class Headers(CaselessDict): self.setdefault(key, default_list) def appendlist(self, key, value): - self.getlist(key).extend(self.normvalue(value)) + lst = self.getlist(key) + lst.extend(self.normvalue(value)) + self[key] = lst def items(self): return list(self.iteritems()) diff --git a/scrapy/trunk/scrapy/tests/test_http_headers.py b/scrapy/trunk/scrapy/tests/test_http_headers.py index 3dc9f6670..f5810d6a7 100644 --- a/scrapy/trunk/scrapy/tests/test_http_headers.py +++ b/scrapy/trunk/scrapy/tests/test_http_headers.py @@ -87,6 +87,11 @@ class HeadersTest(unittest.TestCase): h1.appendlist('header1', 'value3') self.assertEqual(h1.getlist('header1'), ['value1', 'value3']) + h1 = Headers() + h1.appendlist('header1', 'value1') + h1.appendlist('header1', 'value3') + self.assertEqual(h1.getlist('header1'), ['value1', 'value3']) + def test_setlist(self): h1 = Headers({'header1': 'value1'}) self.assertEqual(h1.getlist('header1'), ['value1'])