~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/blackbox.py

[merge] refactoring of branch vs working tree, etc (robertc)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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):
354
349
    def test_diff_branches(self):
355
350
        self.build_tree(['branch1/', 'branch1/file', 'branch2/'], line_endings='binary')
356
351
        branch = Branch.initialize('branch1')
357
 
        branch.add(['file'])
 
352
        branch.working_tree().add(['file'])
358
353
        branch.working_tree().commit('add file')
359
354
        copy_branch(branch, 'branch2')
360
355
        print >> open('branch2/file', 'wb'), 'new content'
737
732
        results = sorted(out.rstrip('\n').split('\n'))
738
733
        self.assertEquals([''], results)
739
734
 
 
735
    def test_add_in_unversioned(self):
 
736
        """Try to add a file in an unversioned directory.
 
737
 
 
738
        "bzr add" should add the parent(s) as necessary.
 
739
        """
 
740
        from bzrlib.branch import Branch
 
741
        Branch.initialize('.')
 
742
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
 
743
        self.assertEquals(self.capture('unknowns'), 'inertiatic\n')
 
744
        self.run_bzr('add', 'inertiatic/esp')
 
745
        self.assertEquals(self.capture('unknowns'), '')
 
746
 
 
747
        # Multiple unversioned parents
 
748
        self.build_tree(['veil/', 'veil/cerpin/', 'veil/cerpin/taxt'])
 
749
        self.assertEquals(self.capture('unknowns'), 'veil\n')
 
750
        self.run_bzr('add', 'veil/cerpin/taxt')
 
751
        self.assertEquals(self.capture('unknowns'), '')
 
752
 
 
753
        # Check whacky paths work
 
754
        self.build_tree(['cicatriz/', 'cicatriz/esp'])
 
755
        self.assertEquals(self.capture('unknowns'), 'cicatriz\n')
 
756
        self.run_bzr('add', 'inertiatic/../cicatriz/esp')
 
757
        self.assertEquals(self.capture('unknowns'), '')
 
758
 
 
759
    def test_add_in_versioned(self):
 
760
        """Try to add a file in a versioned directory.
 
761
 
 
762
        "bzr add" should do this happily.
 
763
        """
 
764
        from bzrlib.branch import Branch
 
765
        Branch.initialize('.')
 
766
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
 
767
        self.assertEquals(self.capture('unknowns'), 'inertiatic\n')
 
768
        self.run_bzr('add', '--no-recurse', 'inertiatic')
 
769
        self.assertEquals(self.capture('unknowns'), 'inertiatic'+os.sep+'esp\n')
 
770
        self.run_bzr('add', 'inertiatic/esp')
 
771
        self.assertEquals(self.capture('unknowns'), '')
 
772
 
 
773
    def test_subdir_add(self):
 
774
        """Add in subdirectory should add only things from there down"""
 
775
        from bzrlib.branch import Branch
 
776
        
 
777
        eq = self.assertEqual
 
778
        ass = self.assert_
 
779
        chdir = os.chdir
 
780
        
 
781
        b = Branch.initialize('.')
 
782
        t = b.working_tree()
 
783
        self.build_tree(['src/', 'README'])
 
784
        
 
785
        eq(sorted(t.unknowns()),
 
786
           ['README', 'src'])
 
787
        
 
788
        self.run_bzr('add', 'src')
 
789
        
 
790
        self.build_tree(['src/foo.c'])
 
791
        
 
792
        chdir('src')
 
793
        self.run_bzr('add')
 
794
        
 
795
        self.assertEquals(self.capture('unknowns'), 'README\n')
 
796
        eq(len(t.read_working_inventory()), 3)
 
797
                
 
798
        chdir('..')
 
799
        self.run_bzr('add')
 
800
        self.assertEquals(self.capture('unknowns'), '')
 
801
        self.run_bzr('check')
 
802
 
740
803
    def test_unknown_command(self):
741
804
        """Handling of unknown command."""
742
805
        out, err = self.run_bzr_captured(['fluffy-badger'],
1251
1314
    def test_log(self):
1252
1315
        self.build_tree(['branch/', 'branch/file'])
1253
1316
        branch = Branch.initialize('branch')
1254
 
        branch.add(['file'])
 
1317
        branch.working_tree().add(['file'])
1255
1318
        branch.working_tree().commit('add file', rev_id='A')
1256
1319
        url = self.get_remote_url('branch/file')
1257
1320
        output = self.capture('log %s' % url)
1258
1321
        self.assertEqual(8, len(output.split('\n')))
1259
 
        
1260
 
 
1261
 
 
1262