def test_add_uri_parameters(): def the_test(uri): """Add params to uri, and check results""" params = {"q": "Q2", "r": "R"} uri_split = urisplit(uri) got = add_uri_params(uri, params) got_split = urisplit(got) eq_(uri_split[0], got_split[0]) # URI scheme eq_(uri_split[1], got_split[1]) # netloc eq_(uri_split[2], got_split[2]) # path eq_(uri_split[4], got_split[4]) # fragment-id if uri_split[3] is None: assert got_split[3] in ("q=Q2&r=R", "r=R&q=Q2"), got_split[3] else: assert got_split[3].startswith(uri_split[3]), got_split[3] remain = got_split[3][len(uri_split[3]) :] assert remain in ("&q=Q2&r=R", "&r=R&q=Q2"), got_split[3] the_test("http://a.b/c/d") the_test("http://a.b/c/d?") the_test("http://a.b/c/d#") the_test("http://a.b/c/d?#") the_test("http://a.b/c/d?p=P&q=Q") the_test("http://a.b/c/d#f") the_test("http://a.b/c/d?p=P&q=Q#") the_test("http://a.b/c/d?#f") the_test("http://a.b/c/d?q#f") uri = add_uri_params("http://a.b/c/d", {"hé": "hé hé"}) assert uri.endswith("?h%C3%A9=h%C3%A9+h%C3%A9"), uri uri = add_uri_params("http://a.b/c/d", {"p": ["v1", "v2"]}) assert uri[14:] in ("?p=v1&p=v2", "?p=v2&p=v1"), uri
def test_add_uri_parameters(): def the_test(uri): """Add params to uri, and check results""" params = { "q": "Q2", "r": "R" } uri_split = urisplit(uri) got = add_uri_params(uri, params) got_split = urisplit(got) assert uri_split[0] == got_split[0] # URI scheme assert uri_split[1] == got_split[1] # netloc assert uri_split[2] == got_split[2] # path assert uri_split[4] == got_split[4] # fragment-id if uri_split[3] is None: assert got_split[3] in ("q=Q2&r=R", "r=R&q=Q2"), got_split[3] else: assert got_split[3].startswith(uri_split[3]), got_split[3] remain = got_split[3][len(uri_split[3]):] assert remain in ("&q=Q2&r=R", "&r=R&q=Q2"), got_split[3] the_test('http://a.b/c/d') the_test('http://a.b/c/d?') the_test('http://a.b/c/d#') the_test('http://a.b/c/d?#') the_test('http://a.b/c/d?p=P&q=Q') the_test('http://a.b/c/d#f') the_test('http://a.b/c/d?p=P&q=Q#') the_test('http://a.b/c/d?#f') the_test('http://a.b/c/d?q#f') uri = add_uri_params("http://a.b/c/d", { "hé": "hé hé" }) assert uri.endswith("?h%C3%A9=h%C3%A9+h%C3%A9"), uri uri = add_uri_params("http://a.b/c/d", { "p": [ "v1", "v2" ] }) assert uri[14:] in ("?p=v1&p=v2", "?p=v2&p=v1"), uri
def the_test(uri): """Add params to uri, and check results""" params = {"q": "Q2", "r": "R"} uri_split = urisplit(uri) got = add_uri_params(uri, params) got_split = urisplit(got) eq_(uri_split[0], got_split[0]) # URI scheme eq_(uri_split[1], got_split[1]) # netloc eq_(uri_split[2], got_split[2]) # path eq_(uri_split[4], got_split[4]) # fragment-id if uri_split[3] is None: assert got_split[3] in ("q=Q2&r=R", "r=R&q=Q2"), got_split[3] else: assert got_split[3].startswith(uri_split[3]), got_split[3] remain = got_split[3][len(uri_split[3]) :] assert remain in ("&q=Q2&r=R", "&r=R&q=Q2"), got_split[3]
def the_test(uri): """Add params to uri, and check results""" params = { "q": "Q2", "r": "R" } uri_split = urisplit(uri) got = add_uri_params(uri, params) got_split = urisplit(got) assert uri_split[0] == got_split[0] # URI scheme assert uri_split[1] == got_split[1] # netloc assert uri_split[2] == got_split[2] # path assert uri_split[4] == got_split[4] # fragment-id if uri_split[3] is None: assert got_split[3] in ("q=Q2&r=R", "r=R&q=Q2"), got_split[3] else: assert got_split[3].startswith(uri_split[3]), got_split[3] remain = got_split[3][len(uri_split[3]):] assert remain in ("&q=Q2&r=R", "&r=R&q=Q2"), got_split[3]