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
46
46
class ExternalBase(TestCaseInTempDir):
170
170
self.runbzr('commit -m newstuff branch')
171
171
self.runbzr('commit -m newstuff branch', retcode=3)
174
173
def test_ignore_patterns(self):
175
174
from bzrlib.branch import Branch
177
b = Branch.initialize('.')
178
self.assertEquals(list(b.unknowns()), [])
175
Branch.initialize('.')
176
self.assertEquals(self.capture('unknowns'), '')
180
178
file('foo.tmp', 'wt').write('tmp files are ignored')
181
self.assertEquals(list(b.unknowns()), [])
182
179
self.assertEquals(self.capture('unknowns'), '')
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')
188
184
self.runbzr(['add', 'foo.c'])
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')
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')
206
201
def test_revert(self):
369
364
self.runbzr('diff')
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')
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')
544
def test_inventory(self):
546
def output_equals(value, *args):
547
out = self.runbzr(['inventory'] + list(args), backtick=True)
548
self.assertEquals(out, value)
551
open('a', 'wb').write('hello\n')
557
output_equals('a\n', '--kind', 'file')
558
output_equals('b\n', '--kind', 'directory')
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)
752
def test_add_in_unversioned(self):
753
"""Try to add a file in an unversioned directory.
755
"bzr add" should add the parent(s) as necessary.
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'), '')
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'), '')
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'), '')
776
def test_add_in_versioned(self):
777
"""Try to add a file in a versioned directory.
779
"bzr add" should do this happily.
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'), '')
790
def test_subdir_add(self):
791
"""Add in subdirectory should add only things from there down"""
792
from bzrlib.branch import Branch
794
eq = self.assertEqual
798
b = Branch.initialize('.')
800
self.build_tree(['src/', 'README'])
802
eq(sorted(t.unknowns()),
805
self.run_bzr('add', 'src')
807
self.build_tree(['src/foo.c'])
812
self.assertEquals(self.capture('unknowns'), 'README\n')
813
eq(len(t.read_working_inventory()), 3)
817
self.assertEquals(self.capture('unknowns'), '')
818
self.run_bzr('check')
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')))