diff options
| author | Gael Pasgrimaud <gael@gawel.org> | 2020-01-23 19:22:56 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-23 19:22:56 +0100 |
| commit | 7408b1cb36312eeef90574f723424ab892f8e06f (patch) | |
| tree | 517794fddc4cc2bbe60b09257744ac1559b302b5 | |
| parent | f01ed4b08f456fa4b9767254af12da70bde73d41 (diff) | |
| parent | 8f874a6f56422e15df8438da7d1352b4a77585e0 (diff) | |
| download | webtest-7408b1cb36312eeef90574f723424ab892f8e06f.tar.gz | |
Merge pull request #221 from Natim/220-add-head-params
Add queryparams to the head method.
| -rw-r--r-- | CHANGELOG.rst | 2 | ||||
| -rw-r--r-- | webtest/app.py | 13 | ||||
| -rw-r--r-- | webtest/utils.py | 11 |
3 files changed, 17 insertions, 9 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 43506f9..13a0bd8 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -8,6 +8,8 @@ News - Treat ``<input type="search">`` like ``<input type="text">``. +- Handle query parameters for the ``head`` method. + 2.0.33 (2019-02-09) ------------------- diff --git a/webtest/app.py b/webtest/app.py index 2116efe..895f255 100644 --- a/webtest/app.py +++ b/webtest/app.py @@ -26,7 +26,6 @@ from six import text_type from six.moves import http_cookiejar from webtest.compat import urlparse -from webtest.compat import urlencode from webtest.compat import to_bytes from webtest.compat import escape_cookie_value from webtest.response import TestResponse @@ -315,13 +314,7 @@ class TestApp(object): url = str(url) url = self._remove_fragment(url) if params: - if not isinstance(params, string_types): - params = urlencode(params, doseq=True) - if str('?') in url: - url += str('&') - else: - url += str('?') - url += params + url = utils.build_params(url, params) if str('?') in url: url, environ['QUERY_STRING'] = url.split(str('?'), 1) else: @@ -448,7 +441,7 @@ class TestApp(object): upload_files=None, expect_errors=expect_errors) - def head(self, url, headers=None, extra_environ=None, + def head(self, url, params=None, headers=None, extra_environ=None, status=None, expect_errors=False, xhr=False): """ Do a HEAD request. Similar to :meth:`~webtest.TestApp.get`. @@ -456,6 +449,8 @@ class TestApp(object): :returns: :class:`webtest.TestResponse` instance. """ + if params: + url = utils.build_params(url, params) if xhr: headers = self._add_xhr_header(headers) return self._gen_request('HEAD', url, headers=headers, diff --git a/webtest/utils.py b/webtest/utils.py index 9ae1377..d8f1f7f 100644 --- a/webtest/utils.py +++ b/webtest/utils.py @@ -80,6 +80,17 @@ def encode_params(params, content_type): return params +def build_params(url, params): + if not isinstance(params, six.string_types): + params = urlencode(params, doseq=True) + if str('?') in url: + url += str('&') + else: + url += str('?') + url += params + return url + + def make_pattern(pat): """Find element pattern can be a regex or a callable.""" if pat is None: |
