browser2: Allow setting query string params on build_url
The outcome is exactly the same as using requests with the "params" parameter.
This commit is contained in:
parent
5dd0e9e0ec
commit
b9c6176628
1 changed files with 9 additions and 1 deletions
|
|
@ -140,10 +140,13 @@ class URL(object):
|
||||||
"""
|
"""
|
||||||
Build an url with the given arguments from URL's regexps.
|
Build an url with the given arguments from URL's regexps.
|
||||||
|
|
||||||
|
:param param: Query string parameters
|
||||||
|
|
||||||
:rtype: :class:`str`
|
:rtype: :class:`str`
|
||||||
:raises: :class:`UrlNotResolvable` if unable to resolve a correct url with the given arguments.
|
:raises: :class:`UrlNotResolvable` if unable to resolve a correct url with the given arguments.
|
||||||
"""
|
"""
|
||||||
browser = kwargs.pop('browser', self.browser)
|
browser = kwargs.pop('browser', self.browser)
|
||||||
|
params = kwargs.pop('params', None)
|
||||||
patterns = []
|
patterns = []
|
||||||
for url in self.urls:
|
for url in self.urls:
|
||||||
patterns += normalize(url)
|
patterns += normalize(url)
|
||||||
|
|
@ -162,7 +165,12 @@ class URL(object):
|
||||||
if len(kwargs):
|
if len(kwargs):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
return browser.absurl(url, base=True)
|
url = browser.absurl(url, base=True)
|
||||||
|
if params:
|
||||||
|
p = requests.models.PreparedRequest()
|
||||||
|
p.prepare_url(url, params)
|
||||||
|
url = p.url
|
||||||
|
return url
|
||||||
|
|
||||||
raise UrlNotResolvable('Unable to resolve URL with %r. Available are %s' % (kwargs, ', '.join([pattern for pattern, _ in patterns])))
|
raise UrlNotResolvable('Unable to resolve URL with %r. Available are %s' % (kwargs, ', '.join([pattern for pattern, _ in patterns])))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue