mirror of https://github.com/scrapy/scrapy.git
added a couple of unittests for from_response errors
--HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%401055
This commit is contained in:
parent
54ad49f765
commit
74f39480c6
|
|
@ -39,11 +39,11 @@ class FormRequest(Request):
|
|||
forms = ParseFile(StringIO(response.body), response.url,
|
||||
encoding=encoding, backwards_compat=False)
|
||||
if not forms:
|
||||
raise ValueError("No form control found in %s" % response)
|
||||
raise ValueError("No <form> element found in %s" % response)
|
||||
try:
|
||||
form = forms[formnumber]
|
||||
except IndexError:
|
||||
raise IndexError("No such form number: %d" % formnumber)
|
||||
raise IndexError("Form number %d not found in %s" % (formnumber, response))
|
||||
if formdata:
|
||||
for k, v in formdata.iteritems():
|
||||
for v2 in v if hasattr(v, '__iter__') else [v]:
|
||||
|
|
|
|||
|
|
@ -234,6 +234,21 @@ class FormRequestTest(unittest.TestCase):
|
|||
self.assertEqual(urlargs['test2'], ['xxx'])
|
||||
self.assertEqual(urlargs['six'], ['seven'])
|
||||
|
||||
def test_from_response_errors_noform(self):
|
||||
respbody = """<html></html>"""
|
||||
response = Response("http://www.example.com/lala.html", body=respbody)
|
||||
self.assertRaises(ValueError, FormRequest.from_response, response)
|
||||
|
||||
def test_from_response_errors_formnumber(self):
|
||||
respbody = """
|
||||
<form action="get.php" method="GET">
|
||||
<input type="hidden" name="test" value="val1">
|
||||
<input type="hidden" name="test" value="val2">
|
||||
<input type="hidden" name="test2" value="xxx">
|
||||
</form>
|
||||
"""
|
||||
response = Response("http://www.example.com/lala.html", body=respbody)
|
||||
self.assertRaises(IndexError, FormRequest.from_response, response, formnumber=1)
|
||||
|
||||
class XmlRpcRequestTest(unittest.TestCase):
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue