~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_transport_implementations.py

  • Committer: Robert Collins
  • Date: 2006-04-05 05:43:06 UTC
  • mto: This revision was merged to the branch mainline in revision 1638.
  • Revision ID: robertc@robertcollins.net-20060405054306-bfe845e73979aadd
Fix calling relpath() and abspath() on transports at their root.

Show diffs side-by-side

added added

removed removed

Lines of Context:
825
825
        # trailing slash should be the same.
826
826
        self.assertEqual('foo', t.relpath(t.base + 'foo/'))
827
827
 
 
828
    def test_relpath_at_root(self):
 
829
        t = self.get_transport()
 
830
        # clone all the way to the top
 
831
        new_transport = t.clone('..')
 
832
        while new_transport.base != t.base:
 
833
            t = new_transport
 
834
            new_transport = t.clone('..')
 
835
        # we must be able to get a relpath below the root
 
836
        self.assertEqual('', t.relpath(t.base))
 
837
        # and a deeper one should work too
 
838
        self.assertEqual('foo/bar', t.relpath(t.base + 'foo/bar'))
 
839
 
828
840
    def test_abspath(self):
829
841
        # smoke test for abspath. Corner cases for backends like unix fs's
830
842
        # that have aliasing problems like symlinks should go in backend
836
848
        self.assertEqual(transport.base + 'relpath',
837
849
                         transport.abspath('relpath'))
838
850
 
 
851
    def test_abspath_at_root(self):
 
852
        t = self.get_transport()
 
853
        # clone all the way to the top
 
854
        new_transport = t.clone('..')
 
855
        while new_transport.base != t.base:
 
856
            t = new_transport
 
857
            new_transport = t.clone('..')
 
858
        # we must be able to get a abspath of the root when we ask for
 
859
        # t.abspath('..') - this due to our choice that clone('..')
 
860
        # should return the root from the root, combined with the desire that
 
861
        # the url from clone('..') and from abspath('..') should be the same.
 
862
        self.assertEqual(t.base, t.abspath('..'))
 
863
        # '' should give us the root
 
864
        self.assertEqual(t.base, t.abspath(''))
 
865
        # and a path should append to the url
 
866
        self.assertEqual(t.base + 'foo', t.abspath('foo'))
 
867
 
839
868
    def test_iter_files_recursive(self):
840
869
        transport = self.get_transport()
841
870
        if not transport.listable():