From b9c61766288404f4ff94b153dfbfd34b1b051f96 Mon Sep 17 00:00:00 2001 From: Laurent Bachelier Date: Fri, 20 Jun 2014 15:54:02 +0200 Subject: [PATCH] browser2: Allow setting query string params on build_url The outcome is exactly the same as using requests with the "params" parameter. --- weboob/tools/browser2/page.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/weboob/tools/browser2/page.py b/weboob/tools/browser2/page.py index deb1d2eb1a..c8841f80a9 100644 --- a/weboob/tools/browser2/page.py +++ b/weboob/tools/browser2/page.py @@ -140,10 +140,13 @@ def build(self, **kwargs): """ Build an url with the given arguments from URL's regexps. + :param param: Query string parameters + :rtype: :class:`str` :raises: :class:`UrlNotResolvable` if unable to resolve a correct url with the given arguments. """ browser = kwargs.pop('browser', self.browser) + params = kwargs.pop('params', None) patterns = [] for url in self.urls: patterns += normalize(url) @@ -162,7 +165,12 @@ def build(self, **kwargs): if len(kwargs): 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]))) -- GitLab