Also ignore URLs where all kwargs were not used
This commit is contained in:
parent
6e9910ae9a
commit
e01b39c8d2
1 changed files with 5 additions and 2 deletions
|
|
@ -145,13 +145,16 @@ class URL(object):
|
||||||
for pattern, _ in patterns:
|
for pattern, _ in patterns:
|
||||||
url = pattern
|
url = pattern
|
||||||
# only use full-name substitutions, to allow % in URLs
|
# only use full-name substitutions, to allow % in URLs
|
||||||
for kwkey in kwargs:
|
for kwkey in kwargs.keys(): # need to use keys() because of pop()
|
||||||
search = '%%(%s)s' % kwkey
|
search = '%%(%s)s' % kwkey
|
||||||
if search in pattern:
|
if search in pattern:
|
||||||
url = url.replace(search, unicode(kwargs[kwkey]))
|
url = url.replace(search, unicode(kwargs.pop(kwkey)))
|
||||||
# if there are named substitutions left, ignore pattern
|
# if there are named substitutions left, ignore pattern
|
||||||
if re.search('%\([A-z_]+\)s', url):
|
if re.search('%\([A-z_]+\)s', url):
|
||||||
continue
|
continue
|
||||||
|
# if not all kwargs were used
|
||||||
|
if len(kwargs):
|
||||||
|
continue
|
||||||
|
|
||||||
return self.browser.absurl(url, base=True)
|
return self.browser.absurl(url, base=True)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue