simplify formdata type infering. #111

This commit is contained in:
Daniel Graña 2012-04-13 16:07:27 -03:00
parent a11ef7fba7
commit 51e5aadd1d
1 changed files with 5 additions and 6 deletions

View File

@ -33,12 +33,6 @@ class FormRequest(Request):
def from_response(cls, response, formname=None, formnumber=0, formdata=None,
clickdata=None, dont_click=False, **kwargs):
from scrapy.selector.lxmldocument import LxmlDocument
if not hasattr(formdata, "items"):
try:
formdata = dict(formdata) if formdata else {}
except (ValueError, TypeError):
raise ValueError('formdata should be a dict or iterable of tuples')
kwargs.setdefault('encoding', response.encoding)
root = LxmlDocument(response, lxml.html.HTMLParser)
form = _get_form(root, formname, formnumber, response)
@ -78,6 +72,11 @@ def _get_form(root, formname, formnumber, response):
return form
def _get_inputs(form, formdata, dont_click, clickdata, response):
try:
formdata = dict(formdata or ())
except (ValueError, TypeError):
raise ValueError('formdata should be a dict or iterable of tuples')
inputs = [(n, v) for n, v in form.form_values() if n not in formdata]
if not dont_click: