274
274
join_segment_parameters_raw = urlutils.join_segment_parameters_raw
275
275
self.assertEquals("/somedir/path",
276
276
join_segment_parameters_raw("/somedir/path"))
277
self.assertEquals("/somedir/path,brrr",
278
join_segment_parameters_raw("/somedir/path", "brrr"))
277
self.assertEquals("/somedir/path,rawdata",
278
join_segment_parameters_raw("/somedir/path", "rawdata"))
279
279
self.assertRaises(InvalidURLJoin,
280
join_segment_parameters_raw, "/somedir/path", "brr,brr,brr")
280
join_segment_parameters_raw, "/somedir/path",
281
"rawdata1,rawdata2,rawdata3")
281
282
self.assertEquals("/somedir/path,bla,bar",
282
283
join_segment_parameters_raw("/somedir/path", "bla", "bar"))
283
284
self.assertEquals("/somedir,exist=some/path,bla,bar",
288
289
join_segment_parameters = urlutils.join_segment_parameters
289
290
self.assertEquals("/somedir/path",
290
291
join_segment_parameters("/somedir/path", {}))
291
self.assertEquals("/somedir/path,branch=brrr",
292
join_segment_parameters("/somedir/path", {"branch": "brrr"}))
292
self.assertEquals("/somedir/path,key1=val1",
293
join_segment_parameters("/somedir/path", {"key1": "val1"}))
293
294
self.assertRaises(InvalidURLJoin,
294
295
join_segment_parameters, "/somedir/path",
295
296
{"branch": "brr,brr,brr"})
296
297
self.assertRaises(InvalidURLJoin,
297
join_segment_parameters, "/somedir/path", {"branch=bla": "brr"})
298
self.assertEquals("/somedir/path,bla=bar,branch=bla",
298
join_segment_parameters, "/somedir/path", {"key1=val1": "val2"})
299
self.assertEquals("/somedir/path,key1=val1,key2=val2",
299
300
join_segment_parameters("/somedir/path", {
300
"branch": "bla", "bla": "bar"}))
301
self.assertEquals("/somedir/path,bla=bar,branch=bla",
302
join_segment_parameters("/somedir/path,bla=bar", {
304
self.assertEquals("/somedir/path,bla=bloe",
305
join_segment_parameters("/somedir/path,bla=bar", {
307
self.assertEquals("/somedir,exist=some/path,bla=bar",
301
"key1": "val1", "key2": "val2"}))
302
self.assertEquals("/somedir/path,key1=val1,key2=val2",
303
join_segment_parameters("/somedir/path,key1=val1", {
305
self.assertEquals("/somedir/path,key1=val2",
306
join_segment_parameters("/somedir/path,key1=val1", {
308
self.assertEquals("/somedir,exist=some/path,key1=val1",
308
309
join_segment_parameters("/somedir,exist=some/path",
310
self.assertEquals("/,bla=bar,exist=some",
311
join_segment_parameters("/,exist=some", {"bla": "bar"}))
311
self.assertEquals("/,key1=val1,key2=val2",
312
join_segment_parameters("/,key1=val1", {"key2": "val2"}))
313
314
def test_function_type(self):
314
315
if sys.platform == 'win32':
464
465
split_segment_parameters_raw("/somedir/path,heads%2Ftip"))
465
466
self.assertEquals(("/somedir/path", ["heads%2Ftip", "bar"]),
466
467
split_segment_parameters_raw("/somedir/path,heads%2Ftip,bar"))
467
self.assertEquals(("/", ["foo=bar"]),
468
split_segment_parameters_raw(",foo=bar"))
469
self.assertEquals(("foo/", ["bar=bar"]),
470
split_segment_parameters_raw("foo/,bar=bar"))
468
self.assertEquals(("/", ["key1=val1"]),
469
split_segment_parameters_raw(",key1=val1"))
470
self.assertEquals(("foo/", ["key1=val1"]),
471
split_segment_parameters_raw("foo/,key1=val1"))
471
472
self.assertEquals(("foo/base,la=bla/other/elements", []),
472
473
split_segment_parameters_raw("foo/base,la=bla/other/elements"))
473
474
self.assertEquals(("foo/base,la=bla/other/elements", ["a=b"]),
484
485
self.assertEquals(("/somedir/path", {"ref": "heads%2Ftip"}),
485
486
split_segment_parameters("/somedir/path,ref=heads%2Ftip"))
486
487
self.assertEquals(("/somedir/path",
487
{"ref": "heads%2Ftip", "bla": "bar"}),
488
split_segment_parameters("/somedir/path,ref=heads%2Ftip,bla=bar"))
488
{"ref": "heads%2Ftip", "key1": "val1"}),
489
split_segment_parameters(
490
"/somedir/path,ref=heads%2Ftip,key1=val1"))
489
491
self.assertEquals(("/somedir/path", {"ref": "heads%2F=tip"}),
490
492
split_segment_parameters("/somedir/path,ref=heads%2F=tip"))
491
self.assertEquals(("/", {"foo": "bar"}),
492
split_segment_parameters(",foo=bar"))
493
self.assertEquals(("foo/", {"bar": "bar"}),
494
split_segment_parameters("foo/,bar=bar"))
495
self.assertEquals(("foo/base,la=bla/other/elements", {}),
496
split_segment_parameters("foo/base,la=bla/other/elements"))
497
self.assertEquals(("foo/base,la=bla/other/elements", {"a": "b"}),
498
split_segment_parameters("foo/base,la=bla/other/elements,a=b"))
493
self.assertEquals(("/", {"key1": "val1"}),
494
split_segment_parameters(",key1=val1"))
495
self.assertEquals(("foo/", {"key1": "val1"}),
496
split_segment_parameters("foo/,key1=val1"))
497
self.assertEquals(("foo/base,key1=val1/other/elements", {}),
498
split_segment_parameters("foo/base,key1=val1/other/elements"))
499
self.assertEquals(("foo/base,key1=val1/other/elements",
500
{"key2": "val2"}), split_segment_parameters(
501
"foo/base,key1=val1/other/elements,key2=val2"))
500
503
def test_win32_strip_local_trailing_slash(self):
501
504
strip = urlutils._win32_strip_local_trailing_slash