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:
Pablo Hoffman 2009-04-12 09:16:31 +00:00
parent 54ad49f765
commit 74f39480c6
2 changed files with 17 additions and 2 deletions

View File

@ -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]:

View File

@ -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):