url_query_cleaner: do not append ? if query is empty

This commit is contained in:
Daniel Grana 2010-04-30 16:19:59 -03:00
parent 3d731ba641
commit ac646a3b47
2 changed files with 4 additions and 1 deletions

View File

@ -138,6 +138,8 @@ class UrlUtilsTest(unittest.TestCase):
def test_url_query_cleaner(self):
self.assertEqual('product.html?id=200',
url_query_cleaner("product.html?id=200&foo=bar&name=wired", ['id']))
self.assertEqual('product.html',
url_query_cleaner("product.html?foo=bar&name=wired", ['id']))
self.assertEqual('product.html?id=200&name=wired',
url_query_cleaner("product.html?id=200&foo=bar&name=wired", ['id', 'name']))
self.assertEqual('product.html?id',

View File

@ -108,7 +108,8 @@ def url_query_cleaner(url, parameterlist=(), sep='&', kvsep='=', remove=False, u
else:
querylist.append([k, s, v])
seen.add(k)
return base + '?' + sep.join(''.join(ksv) for ksv in querylist)
query = '?' + sep.join(''.join(ksv) for ksv in querylist)
return urlparse.urljoin(base, query)
def add_or_replace_parameter(url, name, new_value, sep='&', url_is_quoted=False):
"""Add or remove a parameter to a given url"""