Projet

Général

Profil

0001-fix-in-variadic-URL-8889.patch

Thomas Noël, 06 novembre 2015 00:12

Télécharger (2,37 ko)

Voir les différences:

Subject: [PATCH] fix in variadic URL (#8889)

 tests/test_variadic_url.py | 9 +++++++++
 wcs/qommon/misc.py         | 6 +++++-
 2 files changed, 14 insertions(+), 1 deletion(-)
tests/test_variadic_url.py
64 64
    assert get_variadic_url('[url]/foobar',
65 65
            {'url': 'http://www.example.net'}) == 'http://www.example.net/foobar'
66 66

  
67
def test_url_server_qs_without_slash():
68
    assert get_variadic_url('[url]?foo=bar',
69
            {'url': 'http://www.example.net/'}) == 'http://www.example.net/?foo=bar'
70

  
67 71
def test_url_server_more():
68 72
    assert get_variadic_url('[url]/foobar/json?toto',
69 73
            {'url': 'http://www.example.net'}) == 'http://www.example.net/foobar/json?toto'
......
80 84
    assert get_variadic_url('[url]',
81 85
            {'url': 'http://www.example.net/?foo=bar'}) == 'http://www.example.net/?foo=bar'
82 86

  
87
def test_url_whole_with_qs_2():
88
    for url in ('[url]?bar=foo', '[url]&bar=foo', '[url]/?bar=foo'):
89
        assert get_variadic_url(url, {'url': 'http://www.example.net/?foo=bar'}) in \
90
                ('http://www.example.net/?bar=foo&foo=bar', 'http://www.example.net/?foo=bar&bar=foo')
91

  
83 92
def test_path_missing_var():
84 93
    assert get_variadic_url('http://www.example.net/foobar/[path]',
85 94
            {}) == 'http://www.example.net/foobar/[path]'
wcs/qommon/misc.py
321 321
                p2 = urlparse.urlsplit(before_path)
322 322
                scheme, netloc = p2.scheme, p2.netloc
323 323
                if p2.path and not path:
324
                    path, query = p2.path, p2.query
324
                    path, query2 = p2.path, p2.query
325
                    if query and query2:
326
                        query += '&' + query2
327
                    else:
328
                        query = query or query2
325 329
        if path:
326 330
            path = partial_quote(ezt_substitute(path, variables))
327 331
    if fragment and '[' in fragment:
328
-