diff options
author | Gael Pasgrimaud <gael@gawel.org> | 2016-03-31 14:46:08 +0200 |
---|---|---|
committer | Gael Pasgrimaud <gael@gawel.org> | 2016-03-31 14:46:08 +0200 |
commit | 43de66aaa7b4b6bef385bb89877653b45b621a58 (patch) | |
tree | cc5af762e06aa60f0d84c2ef019e97275db71325 | |
parent | 4e76f55b9dd5ee6bc27b7a4f992f19e232c55a1a (diff) | |
parent | 10242ac5387beb0a52f96b09cd30055f82612bed (diff) | |
download | webtest-43de66aaa7b4b6bef385bb89877653b45b621a58.tar.gz |
Merge pull request #148 from bdauvergne/referer
Add referer header to request made using response.click(), response.clickbutton() and form.submit()
-rw-r--r-- | tests/test_response.py | 14 | ||||
-rw-r--r-- | webtest/forms.py | 2 | ||||
-rw-r--r-- | webtest/response.py | 5 |
3 files changed, 20 insertions, 1 deletions
diff --git a/tests/test_response.py b/tests/test_response.py index 05ec180..f73a281 100644 --- a/tests/test_response.py +++ b/tests/test_response.py @@ -259,6 +259,20 @@ class TestResponse(unittest.TestCase): app.get('/').clickbutton, buttonid='button3' ) + def test_referer(self): + app = webtest.TestApp(links_app) + resp = app.get('/').click('Foo') + self.assertIn('Referer', resp.request.headers) + self.assertEqual(resp.request.headers['Referer'], 'http://localhost/') + + resp = app.get('/').clickbutton(buttonid='button1') + self.assertIn('Referer', resp.request.headers) + self.assertEqual(resp.request.headers['Referer'], 'http://localhost/') + + resp = app.get('/one_forms/').form.submit() + self.assertIn('Referer', resp.request.headers) + self.assertEqual(resp.request.headers['Referer'], 'http://localhost/one_forms/') + def test_xml_attribute(self): app = webtest.TestApp(links_app) diff --git a/webtest/forms.py b/webtest/forms.py index e64c6f7..9ff0a17 100644 --- a/webtest/forms.py +++ b/webtest/forms.py @@ -603,6 +603,8 @@ class Form(object): fields = self.submit_fields(name, index=index, submit_value=value) if self.method.upper() != "GET": args.setdefault("content_type", self.enctype) + extra_environ = args.setdefault('extra_environ', {}) + extra_environ.setdefault('HTTP_REFERER', str(self.response.request.url)) return self.response.goto(self.action, method=self.method, params=fields, **args) diff --git a/webtest/response.py b/webtest/response.py index bca7c6f..3952079 100644 --- a/webtest/response.py +++ b/webtest/response.py @@ -161,6 +161,8 @@ class TestResponse(webob.Response): id=linkid, href_pattern=href, index=index, verbose=verbose) + extra_environ = extra_environ or {} + extra_environ.setdefault('HTTP_REFERER', str(self.request.url)) return self.goto(str(found_attrs['uri']), extra_environ=extra_environ) def clickbutton(self, description=None, buttonid=None, href=None, @@ -178,7 +180,8 @@ class TestResponse(webob.Response): id=buttonid, href_pattern=href, index=index, verbose=verbose) - return self.goto(str(found_attrs['uri'])) + extra_environ = {'HTTP_REFERER': str(self.request.url)} + return self.goto(str(found_attrs['uri']), extra_environ=extra_environ) def _find_element(self, tag, href_attr, href_extract, content, id, |