/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_urlutils.py

  • Committer: Vincent Ladeuil
  • Date: 2009-07-10 12:40:36 UTC
  • mfrom: (4523.1.5 per-tests)
  • mto: This revision was merged to the branch mainline in revision 4526.
  • Revision ID: v.ladeuil+lp@free.fr-20090710124036-enqp2kri098c24ub
Finish the *_implementation to per_* test renaming

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2005 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
17
17
"""Tests for the urlutils wrapper."""
18
18
 
19
19
import os
 
20
import re
20
21
import sys
21
22
 
22
23
from bzrlib import osutils, urlutils, win32utils
270
271
        self.assertRaises(InvalidURLJoin, urlutils.joinpath, '/', '..')
271
272
        self.assertRaises(InvalidURLJoin, urlutils.joinpath, '/', '/..')
272
273
 
273
 
    def test_join_segment_parameters_raw(self):
274
 
        join_segment_parameters_raw = urlutils.join_segment_parameters_raw
275
 
        self.assertEquals("/somedir/path", 
276
 
            join_segment_parameters_raw("/somedir/path"))
277
 
        self.assertEquals("/somedir/path,rawdata", 
278
 
            join_segment_parameters_raw("/somedir/path", "rawdata"))
279
 
        self.assertRaises(InvalidURLJoin,
280
 
            join_segment_parameters_raw, "/somedir/path",
281
 
                "rawdata1,rawdata2,rawdata3")
282
 
        self.assertEquals("/somedir/path,bla,bar",
283
 
            join_segment_parameters_raw("/somedir/path", "bla", "bar"))
284
 
        self.assertEquals("/somedir,exist=some/path,bla,bar",
285
 
            join_segment_parameters_raw("/somedir,exist=some/path",
286
 
                "bla", "bar"))
287
 
        self.assertRaises(TypeError, join_segment_parameters_raw, 
288
 
            "/somepath", 42)
289
 
 
290
 
    def test_join_segment_parameters(self):
291
 
        join_segment_parameters = urlutils.join_segment_parameters
292
 
        self.assertEquals("/somedir/path", 
293
 
            join_segment_parameters("/somedir/path", {}))
294
 
        self.assertEquals("/somedir/path,key1=val1", 
295
 
            join_segment_parameters("/somedir/path", {"key1": "val1"}))
296
 
        self.assertRaises(InvalidURLJoin,
297
 
            join_segment_parameters, "/somedir/path",
298
 
            {"branch": "brr,brr,brr"})
299
 
        self.assertRaises(InvalidURLJoin,
300
 
            join_segment_parameters, "/somedir/path", {"key1=val1": "val2"})
301
 
        self.assertEquals("/somedir/path,key1=val1,key2=val2",
302
 
            join_segment_parameters("/somedir/path", {
303
 
                "key1": "val1", "key2": "val2"}))
304
 
        self.assertEquals("/somedir/path,key1=val1,key2=val2",
305
 
            join_segment_parameters("/somedir/path,key1=val1", {
306
 
                "key2": "val2"}))
307
 
        self.assertEquals("/somedir/path,key1=val2",
308
 
            join_segment_parameters("/somedir/path,key1=val1", {
309
 
                "key1": "val2"}))
310
 
        self.assertEquals("/somedir,exist=some/path,key1=val1",
311
 
            join_segment_parameters("/somedir,exist=some/path",
312
 
                {"key1": "val1"}))
313
 
        self.assertEquals("/,key1=val1,key2=val2",
314
 
            join_segment_parameters("/,key1=val1", {"key2": "val2"}))
315
 
        self.assertRaises(TypeError,
316
 
            join_segment_parameters, "/,key1=val1", {"foo": 42})
317
 
 
318
274
    def test_function_type(self):
319
275
        if sys.platform == 'win32':
320
276
            self.assertEqual(urlutils._win32_local_path_to_url, urlutils.local_path_to_url)
344
300
            from_url('file:///path/to/r%C3%A4ksm%C3%B6rg%C3%A5s'))
345
301
        self.assertEqual(u'/path/to/r\xe4ksm\xf6rg\xe5s',
346
302
            from_url('file:///path/to/r%c3%a4ksm%c3%b6rg%c3%a5s'))
347
 
        self.assertEqual(u'/path/to/r\xe4ksm\xf6rg\xe5s',
348
 
            from_url('file://localhost/path/to/r%c3%a4ksm%c3%b6rg%c3%a5s'))
349
303
 
350
304
        self.assertRaises(InvalidURL, from_url, '/path/to/foo')
351
 
        self.assertRaises(
352
 
            InvalidURL, from_url,
353
 
            'file://remotehost/path/to/r%c3%a4ksm%c3%b6rg%c3%a5s')
354
305
 
355
306
    def test_win32_local_path_to_url(self):
356
307
        to_url = urlutils._win32_local_path_to_url
457
408
        self.assertEqual(('path/..', 'foo'), split('path/../foo'))
458
409
        self.assertEqual(('../path', 'foo'), split('../path/foo'))
459
410
 
460
 
    def test_split_segment_parameters_raw(self):
461
 
        split_segment_parameters_raw = urlutils.split_segment_parameters_raw
462
 
        self.assertEquals(("/some/path", []),
463
 
            split_segment_parameters_raw("/some/path"))
464
 
        self.assertEquals(("/some/path", ["tip"]),
465
 
            split_segment_parameters_raw("/some/path,tip"))
466
 
        self.assertEquals(("/some,dir/path", ["tip"]),
467
 
            split_segment_parameters_raw("/some,dir/path,tip"))
468
 
        self.assertEquals(("/somedir/path", ["heads%2Ftip"]),
469
 
            split_segment_parameters_raw("/somedir/path,heads%2Ftip"))
470
 
        self.assertEquals(("/somedir/path", ["heads%2Ftip", "bar"]),
471
 
            split_segment_parameters_raw("/somedir/path,heads%2Ftip,bar"))
472
 
        self.assertEquals(("/", ["key1=val1"]),
473
 
            split_segment_parameters_raw(",key1=val1"))
474
 
        self.assertEquals(("foo/", ["key1=val1"]),
475
 
            split_segment_parameters_raw("foo/,key1=val1"))
476
 
        self.assertEquals(("foo/base,la=bla/other/elements", []),
477
 
            split_segment_parameters_raw("foo/base,la=bla/other/elements"))
478
 
        self.assertEquals(("foo/base,la=bla/other/elements", ["a=b"]),
479
 
            split_segment_parameters_raw("foo/base,la=bla/other/elements,a=b"))
480
 
 
481
 
    def test_split_segment_parameters(self):
482
 
        split_segment_parameters = urlutils.split_segment_parameters
483
 
        self.assertEquals(("/some/path", {}),
484
 
            split_segment_parameters("/some/path"))
485
 
        self.assertEquals(("/some/path", {"branch": "tip"}),
486
 
            split_segment_parameters("/some/path,branch=tip"))
487
 
        self.assertEquals(("/some,dir/path", {"branch": "tip"}),
488
 
            split_segment_parameters("/some,dir/path,branch=tip"))
489
 
        self.assertEquals(("/somedir/path", {"ref": "heads%2Ftip"}),
490
 
            split_segment_parameters("/somedir/path,ref=heads%2Ftip"))
491
 
        self.assertEquals(("/somedir/path",
492
 
            {"ref": "heads%2Ftip", "key1": "val1"}),
493
 
            split_segment_parameters(
494
 
                "/somedir/path,ref=heads%2Ftip,key1=val1"))
495
 
        self.assertEquals(("/somedir/path", {"ref": "heads%2F=tip"}),
496
 
            split_segment_parameters("/somedir/path,ref=heads%2F=tip"))
497
 
        self.assertEquals(("/", {"key1": "val1"}),
498
 
            split_segment_parameters(",key1=val1"))
499
 
        self.assertEquals(("foo/", {"key1": "val1"}),
500
 
            split_segment_parameters("foo/,key1=val1"))
501
 
        self.assertEquals(("foo/base,key1=val1/other/elements", {}),
502
 
            split_segment_parameters("foo/base,key1=val1/other/elements"))
503
 
        self.assertEquals(("foo/base,key1=val1/other/elements",
504
 
            {"key2": "val2"}), split_segment_parameters(
505
 
                "foo/base,key1=val1/other/elements,key2=val2"))
506
 
 
507
411
    def test_win32_strip_local_trailing_slash(self):
508
412
        strip = urlutils._win32_strip_local_trailing_slash
509
413
        self.assertEqual('file://', strip('file://'))