From 426282bbc9d25fc6cfec25b442f9d924402fc961 Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Thu, 7 May 2009 00:36:39 -0300 Subject: [PATCH] fixed bug with FormRequest class which wasn't setting method=POST by default --- scrapy/http/request/form.py | 1 + scrapy/tests/test_http_request.py | 1 + 2 files changed, 2 insertions(+) diff --git a/scrapy/http/request/form.py b/scrapy/http/request/form.py index 2864ac030..252c193a4 100644 --- a/scrapy/http/request/form.py +++ b/scrapy/http/request/form.py @@ -30,6 +30,7 @@ class FormRequest(Request): items = formdata.iteritems() if isinstance(formdata, dict) else formdata query = [(unicode_to_str(k, self.encoding), _unicode_to_str(v, self.encoding)) for k, v in items] + self.method = 'POST' self.body = urllib.urlencode(query, doseq=1) self.headers['Content-Type'] = 'application/x-www-form-urlencoded' diff --git a/scrapy/tests/test_http_request.py b/scrapy/tests/test_http_request.py index 3d37f16e7..3c50ffec9 100644 --- a/scrapy/tests/test_http_request.py +++ b/scrapy/tests/test_http_request.py @@ -184,6 +184,7 @@ class FormRequestTest(unittest.TestCase): # using default encoding (utf-8) data = {'one': 'two', 'price': '\xc2\xa3 100'} r2 = FormRequest("http://www.example.com", formdata=data) + self.assertEqual(r2.method, 'POST') self.assertEqual(r2.encoding, 'utf-8') self.assertEqual(r2.body, 'price=%C2%A3+100&one=two') self.assertEqual(r2.headers['Content-Type'], 'application/x-www-form-urlencoded')