~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/__init__.py

[merge] up-to-date against bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
from bzrlib.clone import copy_branch
40
40
from bzrlib.errors import BzrCommandError
41
41
from bzrlib.osutils import has_symlinks
42
 
from bzrlib.selftest import TestCaseInTempDir, BzrTestBase
43
 
from bzrlib.selftest.HTTPTestUtil import TestCaseWithWebserver
 
42
from bzrlib.tests import TestCaseInTempDir, BzrTestBase
 
43
from bzrlib.tests.HTTPTestUtil import TestCaseWithWebserver
44
44
 
45
45
 
46
46
class ExternalBase(TestCaseInTempDir):
170
170
        self.runbzr('commit -m newstuff branch')
171
171
        self.runbzr('commit -m newstuff branch', retcode=3)
172
172
 
173
 
 
174
173
    def test_ignore_patterns(self):
175
174
        from bzrlib.branch import Branch
176
 
        
177
 
        b = Branch.initialize('.')
178
 
        self.assertEquals(list(b.unknowns()), [])
 
175
        Branch.initialize('.')
 
176
        self.assertEquals(self.capture('unknowns'), '')
179
177
 
180
178
        file('foo.tmp', 'wt').write('tmp files are ignored')
181
 
        self.assertEquals(list(b.unknowns()), [])
182
179
        self.assertEquals(self.capture('unknowns'), '')
183
180
 
184
181
        file('foo.c', 'wt').write('int main() {}')
185
 
        self.assertEquals(list(b.unknowns()), ['foo.c'])
186
182
        self.assertEquals(self.capture('unknowns'), 'foo.c\n')
187
183
 
188
184
        self.runbzr(['add', 'foo.c'])
190
186
 
191
187
        # 'ignore' works when creating the .bzignore file
192
188
        file('foo.blah', 'wt').write('blah')
193
 
        self.assertEquals(list(b.unknowns()), ['foo.blah'])
 
189
        self.assertEquals(self.capture('unknowns'), 'foo.blah\n')
194
190
        self.runbzr('ignore *.blah')
195
 
        self.assertEquals(list(b.unknowns()), [])
 
191
        self.assertEquals(self.capture('unknowns'), '')
196
192
        self.assertEquals(file('.bzrignore', 'rU').read(), '*.blah\n')
197
193
 
198
194
        # 'ignore' works when then .bzrignore file already exists
199
195
        file('garh', 'wt').write('garh')
200
 
        self.assertEquals(list(b.unknowns()), ['garh'])
201
196
        self.assertEquals(self.capture('unknowns'), 'garh\n')
202
197
        self.runbzr('ignore garh')
203
 
        self.assertEquals(list(b.unknowns()), [])
 
198
        self.assertEquals(self.capture('unknowns'), '')
204
199
        self.assertEquals(file('.bzrignore', 'rU').read(), '*.blah\ngarh\n')
205
200
 
206
201
    def test_revert(self):
369
364
        self.runbzr('diff')
370
365
 
371
366
    def test_diff_branches(self):
372
 
        self.build_tree(['branch1/', 'branch1/file', 'branch2/'])
 
367
        self.build_tree(['branch1/', 'branch1/file', 'branch2/'], line_endings='binary')
373
368
        branch = Branch.initialize('branch1')
374
 
        branch.add(['file'])
 
369
        branch.working_tree().add(['file'])
375
370
        branch.working_tree().commit('add file')
376
371
        copy_branch(branch, 'branch2')
377
 
        print >> open('branch2/file', 'w'), 'new content'
 
372
        print >> open('branch2/file', 'wb'), 'new content'
378
373
        branch2 = Branch.open('branch2')
379
374
        branch2.working_tree().commit('update file')
380
375
        # should open branch1 and diff against branch2, 
546
541
        self.runbzr('pull ../b')
547
542
        self.runbzr('pull ../b')
548
543
 
 
544
    def test_inventory(self):
 
545
        bzr = self.runbzr
 
546
        def output_equals(value, *args):
 
547
            out = self.runbzr(['inventory'] + list(args), backtick=True)
 
548
            self.assertEquals(out, value)
 
549
 
 
550
        bzr('init')
 
551
        open('a', 'wb').write('hello\n')
 
552
        os.mkdir('b')
 
553
 
 
554
        bzr('add a b')
 
555
        bzr('commit -m add')
 
556
 
 
557
        output_equals('a\n', '--kind', 'file')
 
558
        output_equals('b\n', '--kind', 'directory')        
 
559
 
549
560
    def test_ls(self):
550
561
        """Test the abilities of 'bzr ls'"""
551
562
        bzr = self.runbzr
738
749
        results = sorted(out.rstrip('\n').split('\n'))
739
750
        self.assertEquals([''], results)
740
751
 
 
752
    def test_add_in_unversioned(self):
 
753
        """Try to add a file in an unversioned directory.
 
754
 
 
755
        "bzr add" should add the parent(s) as necessary.
 
756
        """
 
757
        from bzrlib.branch import Branch
 
758
        Branch.initialize('.')
 
759
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
 
760
        self.assertEquals(self.capture('unknowns'), 'inertiatic\n')
 
761
        self.run_bzr('add', 'inertiatic/esp')
 
762
        self.assertEquals(self.capture('unknowns'), '')
 
763
 
 
764
        # Multiple unversioned parents
 
765
        self.build_tree(['veil/', 'veil/cerpin/', 'veil/cerpin/taxt'])
 
766
        self.assertEquals(self.capture('unknowns'), 'veil\n')
 
767
        self.run_bzr('add', 'veil/cerpin/taxt')
 
768
        self.assertEquals(self.capture('unknowns'), '')
 
769
 
 
770
        # Check whacky paths work
 
771
        self.build_tree(['cicatriz/', 'cicatriz/esp'])
 
772
        self.assertEquals(self.capture('unknowns'), 'cicatriz\n')
 
773
        self.run_bzr('add', 'inertiatic/../cicatriz/esp')
 
774
        self.assertEquals(self.capture('unknowns'), '')
 
775
 
 
776
    def test_add_in_versioned(self):
 
777
        """Try to add a file in a versioned directory.
 
778
 
 
779
        "bzr add" should do this happily.
 
780
        """
 
781
        from bzrlib.branch import Branch
 
782
        Branch.initialize('.')
 
783
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
 
784
        self.assertEquals(self.capture('unknowns'), 'inertiatic\n')
 
785
        self.run_bzr('add', '--no-recurse', 'inertiatic')
 
786
        self.assertEquals(self.capture('unknowns'), 'inertiatic'+os.sep+'esp\n')
 
787
        self.run_bzr('add', 'inertiatic/esp')
 
788
        self.assertEquals(self.capture('unknowns'), '')
 
789
 
 
790
    def test_subdir_add(self):
 
791
        """Add in subdirectory should add only things from there down"""
 
792
        from bzrlib.branch import Branch
 
793
        
 
794
        eq = self.assertEqual
 
795
        ass = self.assert_
 
796
        chdir = os.chdir
 
797
        
 
798
        b = Branch.initialize('.')
 
799
        t = b.working_tree()
 
800
        self.build_tree(['src/', 'README'])
 
801
        
 
802
        eq(sorted(t.unknowns()),
 
803
           ['README', 'src'])
 
804
        
 
805
        self.run_bzr('add', 'src')
 
806
        
 
807
        self.build_tree(['src/foo.c'])
 
808
        
 
809
        chdir('src')
 
810
        self.run_bzr('add')
 
811
        
 
812
        self.assertEquals(self.capture('unknowns'), 'README\n')
 
813
        eq(len(t.read_working_inventory()), 3)
 
814
                
 
815
        chdir('..')
 
816
        self.run_bzr('add')
 
817
        self.assertEquals(self.capture('unknowns'), '')
 
818
        self.run_bzr('check')
 
819
 
741
820
    def test_unknown_command(self):
742
821
        """Handling of unknown command."""
743
822
        out, err = self.run_bzr_captured(['fluffy-badger'],
1252
1331
    def test_log(self):
1253
1332
        self.build_tree(['branch/', 'branch/file'])
1254
1333
        branch = Branch.initialize('branch')
1255
 
        branch.add(['file'])
 
1334
        branch.working_tree().add(['file'])
1256
1335
        branch.working_tree().commit('add file', rev_id='A')
1257
1336
        url = self.get_remote_url('branch/file')
1258
1337
        output = self.capture('log %s' % url)
1259
1338
        self.assertEqual(8, len(output.split('\n')))
1260
 
        
1261
 
 
1262
 
 
1263