~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_transport_implementations.py

Remove shutil dependency in upgrade - create a delete_tree method for transports.

Show diffs side-by-side

added added

removed removed

Lines of Context:
484
484
        self.check_transport_contents(t.get('f2').read(), t, 'c')
485
485
        self.check_transport_contents(t.get('f3').read(), t, 'd')
486
486
 
487
 
 
488
487
    def test_delete(self):
489
488
        # TODO: Test Transport.delete
490
489
        t = self.get_transport()
529
528
        # plain "listdir".
530
529
        # self.assertEqual([], os.listdir('.'))
531
530
 
 
531
    def test_rmdir(self):
 
532
        t = self.get_transport()
 
533
        # Not much to do with a readonly transport
 
534
        if t.is_readonly():
 
535
            self.assertRaises(TransportNotPossible, t.rmdir, 'missing')
 
536
            return
 
537
        t.mkdir('adir')
 
538
        t.mkdir('adir/bdir')
 
539
        t.rmdir('adir/bdir')
 
540
        self.assertRaises(NoSuchFile, t.stat, 'adir/bdir')
 
541
        t.rmdir('adir')
 
542
        self.assertRaises(NoSuchFile, t.stat, 'adir')
 
543
 
 
544
    def test_delete_tree(self):
 
545
        t = self.get_transport()
 
546
 
 
547
        # Not much to do with a readonly transport
 
548
        if t.is_readonly():
 
549
            self.assertRaises(TransportNotPossible, t.delete_tree, 'missing')
 
550
            return
 
551
 
 
552
        # and does it like listing ?
 
553
        t.mkdir('adir')
 
554
        try:
 
555
            t.delete_tree('adir')
 
556
        except TransportNotPossible:
 
557
            # ok, this transport does not support delete_tree
 
558
            return
 
559
        
 
560
        # did it delete that trivial case?
 
561
        self.assertRaises(NoSuchFile, t.stat, 'adir')
 
562
 
 
563
        self.build_tree(['adir/',
 
564
                         'adir/file', 
 
565
                         'adir/subdir/', 
 
566
                         'adir/subdir/file', 
 
567
                         'adir/subdir2/',
 
568
                         'adir/subdir2/file',
 
569
                         ], transport=t)
 
570
 
 
571
        t.delete_tree('adir')
 
572
        # adir should be gone now.
 
573
        self.assertRaises(NoSuchFile, t.stat, 'adir')
 
574
 
532
575
    def test_move(self):
533
576
        t = self.get_transport()
534
577
 
631
674
 
632
675
        self.assertListRaises(NoSuchFile, t.stat_multi, ['a', 'c', 'd'])
633
676
        self.assertListRaises(NoSuchFile, t.stat_multi, iter(['a', 'c', 'd']))
 
677
        self.build_tree(['subdir/', 'subdir/file'], transport=t)
 
678
        subdir = t.clone('subdir')
 
679
        subdir.stat('./file')
634
680
 
635
681
    def test_list_dir(self):
636
682
        # TODO: Test list_dir, just try once, and if it throws, stop testing
654
700
        t = t.clone('wd')
655
701
 
656
702
        self.assertEqual([], sorted_list(u'.'))
 
703
        # c2 is precisely one letter longer than c here to test that
 
704
        # suffixing is not confused.
657
705
        if not t.is_readonly():
658
 
            self.build_tree(['a', 'b', 'c/', 'c/d', 'c/e'], transport=t)
 
706
            self.build_tree(['a', 'b', 'c/', 'c/d', 'c/e', 'c2/'], transport=t)
659
707
        else:
660
 
            self.build_tree(['wd/a', 'wd/b', 'wd/c/', 'wd/c/d', 'wd/c/e'])
 
708
            self.build_tree(['wd/a', 'wd/b', 'wd/c/', 'wd/c/d', 'wd/c/e', 'wd/c2/'])
661
709
 
662
 
        self.assertEqual([u'a', u'b', u'c'], sorted_list(u'.'))
 
710
        self.assertEqual([u'a', u'b', u'c', u'c2'], sorted_list(u'.'))
663
711
        self.assertEqual([u'd', u'e'], sorted_list(u'c'))
664
712
 
665
713
        if not t.is_readonly():
669
717
            os.unlink('wd/c/d')
670
718
            os.unlink('wd/b')
671
719
            
672
 
        self.assertEqual([u'a', u'c'], sorted_list('.'))
 
720
        self.assertEqual([u'a', u'c', u'c2'], sorted_list('.'))
673
721
        self.assertEqual([u'e'], sorted_list(u'c'))
674
722
 
675
723
        self.assertListRaises(NoSuchFile, t.list_dir, 'q')