~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/blackbox.py

  • Committer: Aaron Bentley
  • Date: 2005-10-04 04:32:32 UTC
  • mfrom: (1185.12.6)
  • mto: (1185.12.13)
  • mto: This revision was merged to the branch mainline in revision 1419.
  • Revision ID: aaron.bentley@utoronto.ca-20051004043231-40302a149769263b
merged my own changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
import os
31
31
import shutil
32
32
import sys
 
33
import os
33
34
 
34
35
from bzrlib.selftest import TestCaseInTempDir, BzrTestBase
35
36
from bzrlib.branch import Branch
144
145
        file('goodbye', 'wt').write('baz')
145
146
        self.runbzr('add goodbye')
146
147
        self.runbzr('commit -m setup goodbye')
147
 
        
 
148
 
148
149
        file('hello', 'wt').write('bar')
149
150
        file('goodbye', 'wt').write('qux')
150
151
        self.runbzr('revert hello')
159
160
        os.rmdir('revertdir')
160
161
        self.runbzr('revert')
161
162
 
 
163
        os.symlink('/unlikely/to/exist', 'symlink')
 
164
        self.runbzr('add symlink')
 
165
        self.runbzr('commit -m f')
 
166
        os.unlink('symlink')
 
167
        self.runbzr('revert')
 
168
        
162
169
        file('hello', 'wt').write('xyz')
163
170
        self.runbzr('commit -m xyz hello')
164
171
        self.runbzr('revert -r 1 hello')
436
443
        
437
444
 
438
445
 
 
446
def has_symlinks():
 
447
    if hasattr(os, 'symlink'):
 
448
        return True
 
449
    else:
 
450
        return False
 
451
 
 
452
def listdir_sorted(dir):
 
453
    L = os.listdir(dir)
 
454
    L.sort()
 
455
    return L
 
456
 
 
457
 
439
458
class OldTests(ExternalBase):
440
459
    """old tests moved from ./testbzr."""
441
460
 
606
625
 
607
626
        runbzr('info')
608
627
 
 
628
        if has_symlinks():
 
629
            progress("symlinks")
 
630
            mkdir('symlinks')
 
631
            chdir('symlinks')
 
632
            runbzr('init')
 
633
            os.symlink("NOWHERE1", "link1")
 
634
            runbzr('add link1')
 
635
            assert self.capture('unknowns') == ''
 
636
            runbzr(['commit', '-m', '1: added symlink link1'])
 
637
    
 
638
            mkdir('d1')
 
639
            runbzr('add d1')
 
640
            assert self.capture('unknowns') == ''
 
641
            os.symlink("NOWHERE2", "d1/link2")
 
642
            assert self.capture('unknowns') == 'd1/link2\n'
 
643
            # is d1/link2 found when adding d1
 
644
            runbzr('add d1')
 
645
            assert self.capture('unknowns') == ''
 
646
            os.symlink("NOWHERE3", "d1/link3")
 
647
            assert self.capture('unknowns') == 'd1/link3\n'
 
648
            runbzr(['commit', '-m', '2: added dir, symlink'])
 
649
    
 
650
            runbzr('rename d1 d2')
 
651
            runbzr('move d2/link2 .')
 
652
            runbzr('move link1 d2')
 
653
            assert os.readlink("./link2") == "NOWHERE2"
 
654
            assert os.readlink("d2/link1") == "NOWHERE1"
 
655
            runbzr('add d2/link3')
 
656
            runbzr('diff')
 
657
            runbzr(['commit', '-m', '3: rename of dir, move symlinks, add link3'])
 
658
    
 
659
            os.unlink("link2")
 
660
            os.symlink("TARGET 2", "link2")
 
661
            os.unlink("d2/link1")
 
662
            os.symlink("TARGET 1", "d2/link1")
 
663
            runbzr('diff')
 
664
            assert self.capture("relpath d2/link1") == "d2/link1\n"
 
665
            runbzr(['commit', '-m', '4: retarget of two links'])
 
666
    
 
667
            runbzr('remove d2/link1')
 
668
            assert self.capture('unknowns') == 'd2/link1\n'
 
669
            runbzr(['commit', '-m', '5: remove d2/link1'])
 
670
    
 
671
            os.mkdir("d1")
 
672
            runbzr('add d1')
 
673
            runbzr('rename d2/link3 d1/link3new')
 
674
            assert self.capture('unknowns') == 'd2/link1\n'
 
675
            runbzr(['commit', '-m', '6: remove d2/link1, move/rename link3'])
 
676
            
 
677
            runbzr(['check'])
 
678
            
 
679
            runbzr(['export', '-r', '1', 'exp1.tmp'])
 
680
            chdir("exp1.tmp")
 
681
            assert listdir_sorted(".") == [ "link1" ]
 
682
            assert os.readlink("link1") == "NOWHERE1"
 
683
            chdir("..")
 
684
            
 
685
            runbzr(['export', '-r', '2', 'exp2.tmp'])
 
686
            chdir("exp2.tmp")
 
687
            assert listdir_sorted(".") == [ "d1", "link1" ]
 
688
            chdir("..")
 
689
            
 
690
            runbzr(['export', '-r', '3', 'exp3.tmp'])
 
691
            chdir("exp3.tmp")
 
692
            assert listdir_sorted(".") == [ "d2", "link2" ]
 
693
            assert listdir_sorted("d2") == [ "link1", "link3" ]
 
694
            assert os.readlink("d2/link1") == "NOWHERE1"
 
695
            assert os.readlink("link2")    == "NOWHERE2"
 
696
            chdir("..")
 
697
            
 
698
            runbzr(['export', '-r', '4', 'exp4.tmp'])
 
699
            chdir("exp4.tmp")
 
700
            assert listdir_sorted(".") == [ "d2", "link2" ]
 
701
            assert os.readlink("d2/link1") == "TARGET 1"
 
702
            assert os.readlink("link2")    == "TARGET 2"
 
703
            assert listdir_sorted("d2") == [ "link1", "link3" ]
 
704
            chdir("..")
 
705
            
 
706
            runbzr(['export', '-r', '5', 'exp5.tmp'])
 
707
            chdir("exp5.tmp")
 
708
            assert listdir_sorted(".") == [ "d2", "link2" ]
 
709
            assert os.path.islink("link2")
 
710
            assert listdir_sorted("d2")== [ "link3" ]
 
711
            chdir("..")
 
712
            
 
713
            runbzr(['export', '-r', '6', 'exp6.tmp'])
 
714
            chdir("exp6.tmp")
 
715
            assert listdir_sorted(".") == [ "d1", "d2", "link2" ]
 
716
            assert listdir_sorted("d1") == [ "link3new" ]
 
717
            assert listdir_sorted("d2") == []
 
718
            assert os.readlink("d1/link3new") == "NOWHERE3"
 
719
            chdir("..")
 
720
        else:
 
721
            progress("skipping symlink tests")
 
722