~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/blackbox.py

  • Committer: Martin Pool
  • Date: 2005-10-04 02:27:27 UTC
  • mfrom: (1399)
  • mto: (1185.13.3)
  • mto: This revision was merged to the branch mainline in revision 1400.
  • Revision ID: mbp@sourcefrog.net-20051004022727-aee7064c62e039a7
[merge] merge robertc's format5 integration

 - test status on specific files
 - track x bit
 - baz2bzr fixes
 - remotebranch fixes

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')
402
409
        
403
410
 
404
411
 
 
412
def has_symlinks():
 
413
    if hasattr(os, 'symlink'):
 
414
        return True
 
415
    else:
 
416
        return False
 
417
 
 
418
def listdir_sorted(dir):
 
419
    L = os.listdir(dir)
 
420
    L.sort()
 
421
    return L
 
422
 
 
423
 
405
424
class OldTests(ExternalBase):
406
425
    """old tests moved from ./testbzr."""
407
426
 
572
591
 
573
592
        runbzr('info')
574
593
 
 
594
        if has_symlinks():
 
595
            progress("symlinks")
 
596
            mkdir('symlinks')
 
597
            chdir('symlinks')
 
598
            runbzr('init')
 
599
            os.symlink("NOWHERE1", "link1")
 
600
            runbzr('add link1')
 
601
            assert self.capture('unknowns') == ''
 
602
            runbzr(['commit', '-m', '1: added symlink link1'])
 
603
    
 
604
            mkdir('d1')
 
605
            runbzr('add d1')
 
606
            assert self.capture('unknowns') == ''
 
607
            os.symlink("NOWHERE2", "d1/link2")
 
608
            assert self.capture('unknowns') == 'd1/link2\n'
 
609
            # is d1/link2 found when adding d1
 
610
            runbzr('add d1')
 
611
            assert self.capture('unknowns') == ''
 
612
            os.symlink("NOWHERE3", "d1/link3")
 
613
            assert self.capture('unknowns') == 'd1/link3\n'
 
614
            runbzr(['commit', '-m', '2: added dir, symlink'])
 
615
    
 
616
            runbzr('rename d1 d2')
 
617
            runbzr('move d2/link2 .')
 
618
            runbzr('move link1 d2')
 
619
            assert os.readlink("./link2") == "NOWHERE2"
 
620
            assert os.readlink("d2/link1") == "NOWHERE1"
 
621
            runbzr('add d2/link3')
 
622
            runbzr('diff')
 
623
            runbzr(['commit', '-m', '3: rename of dir, move symlinks, add link3'])
 
624
    
 
625
            os.unlink("link2")
 
626
            os.symlink("TARGET 2", "link2")
 
627
            os.unlink("d2/link1")
 
628
            os.symlink("TARGET 1", "d2/link1")
 
629
            runbzr('diff')
 
630
            assert self.capture("relpath d2/link1") == "d2/link1\n"
 
631
            runbzr(['commit', '-m', '4: retarget of two links'])
 
632
    
 
633
            runbzr('remove d2/link1')
 
634
            assert self.capture('unknowns') == 'd2/link1\n'
 
635
            runbzr(['commit', '-m', '5: remove d2/link1'])
 
636
    
 
637
            os.mkdir("d1")
 
638
            runbzr('add d1')
 
639
            runbzr('rename d2/link3 d1/link3new')
 
640
            assert self.capture('unknowns') == 'd2/link1\n'
 
641
            runbzr(['commit', '-m', '6: remove d2/link1, move/rename link3'])
 
642
            
 
643
            runbzr(['check'])
 
644
            
 
645
            runbzr(['export', '-r', '1', 'exp1.tmp'])
 
646
            chdir("exp1.tmp")
 
647
            assert listdir_sorted(".") == [ "link1" ]
 
648
            assert os.readlink("link1") == "NOWHERE1"
 
649
            chdir("..")
 
650
            
 
651
            runbzr(['export', '-r', '2', 'exp2.tmp'])
 
652
            chdir("exp2.tmp")
 
653
            assert listdir_sorted(".") == [ "d1", "link1" ]
 
654
            chdir("..")
 
655
            
 
656
            runbzr(['export', '-r', '3', 'exp3.tmp'])
 
657
            chdir("exp3.tmp")
 
658
            assert listdir_sorted(".") == [ "d2", "link2" ]
 
659
            assert listdir_sorted("d2") == [ "link1", "link3" ]
 
660
            assert os.readlink("d2/link1") == "NOWHERE1"
 
661
            assert os.readlink("link2")    == "NOWHERE2"
 
662
            chdir("..")
 
663
            
 
664
            runbzr(['export', '-r', '4', 'exp4.tmp'])
 
665
            chdir("exp4.tmp")
 
666
            assert listdir_sorted(".") == [ "d2", "link2" ]
 
667
            assert os.readlink("d2/link1") == "TARGET 1"
 
668
            assert os.readlink("link2")    == "TARGET 2"
 
669
            assert listdir_sorted("d2") == [ "link1", "link3" ]
 
670
            chdir("..")
 
671
            
 
672
            runbzr(['export', '-r', '5', 'exp5.tmp'])
 
673
            chdir("exp5.tmp")
 
674
            assert listdir_sorted(".") == [ "d2", "link2" ]
 
675
            assert os.path.islink("link2")
 
676
            assert listdir_sorted("d2")== [ "link3" ]
 
677
            chdir("..")
 
678
            
 
679
            runbzr(['export', '-r', '6', 'exp6.tmp'])
 
680
            chdir("exp6.tmp")
 
681
            assert listdir_sorted(".") == [ "d1", "d2", "link2" ]
 
682
            assert listdir_sorted("d1") == [ "link3new" ]
 
683
            assert listdir_sorted("d2") == []
 
684
            assert os.readlink("d1/link3new") == "NOWHERE3"
 
685
            chdir("..")
 
686
        else:
 
687
            progress("skipping symlink tests")
 
688