/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

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

  • Committer: Robert Collins
  • Date: 2007-07-15 15:40:37 UTC
  • mto: (2592.3.33 repository)
  • mto: This revision was merged to the branch mainline in revision 2624.
  • Revision ID: robertc@robertcollins.net-20070715154037-3ar8g89decddc9su
Make GraphIndex accept nodes as key, value, references, so that the method
signature is closer to what a simple key->value index delivers. Also
change the behaviour when the reference list count is zero to accept
key, value as nodes, and emit key, value to make it identical in that case
to a simple key->value index. This may not be a good idea, but for now it
seems ok.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
#
17
17
 
18
18
"""Tests of the 'bzr add' command."""
19
19
 
20
20
import os
21
21
 
22
 
from bzrlib import (
23
 
    osutils,
24
 
    tests,
25
 
    )
26
 
 
27
 
 
28
 
def load_tests(standard_tests, module, loader):
29
 
    """Parameterize tests for view-aware vs not."""
30
 
    to_adapt, result = tests.split_suite_by_condition(
31
 
        standard_tests, tests.condition_isinstance(TestAdd))
32
 
    scenarios = [
33
 
        ('pre-views', {'branch_tree_format': 'pack-0.92'}),
34
 
        ('view-aware', {'branch_tree_format': 'development6-rich-root'}),
35
 
        ]
36
 
    return tests.multiply_tests(to_adapt, scenarios, result)
37
 
 
38
 
 
39
 
class TestAdd(tests.TestCaseWithTransport):
40
 
 
41
 
    def make_branch_and_tree(self, dir):
42
 
        return super(TestAdd, self).make_branch_and_tree(
43
 
            dir, format=self.branch_tree_format)
44
 
 
 
22
from bzrlib.tests.blackbox import ExternalBase
 
23
 
 
24
 
 
25
class TestAdd(ExternalBase):
 
26
        
45
27
    def test_add_reports(self):
46
28
        """add command prints the names of added files."""
47
 
        tree = self.make_branch_and_tree('.')
 
29
        self.run_bzr('init')
48
30
        self.build_tree(['top.txt', 'dir/', 'dir/sub.txt', 'CVS'])
49
31
        self.build_tree_contents([('.bzrignore', 'CVS\n')])
50
32
        out = self.run_bzr('add')[0]
51
33
        # the ordering is not defined at the moment
52
34
        results = sorted(out.rstrip('\n').split('\n'))
53
 
        self.assertEquals(['adding .bzrignore',
54
 
                           'adding dir',
55
 
                           'adding dir/sub.txt',
56
 
                           'adding top.txt'],
 
35
        self.assertEquals(['If you wish to add some of these files, please'\
 
36
                           ' add them by name.',
 
37
                           'added .bzrignore',
 
38
                           'added dir',
 
39
                           'added dir/sub.txt',
 
40
                           'added top.txt',
 
41
                           'ignored 1 file(s).'],
57
42
                          results)
58
43
        out = self.run_bzr('add -v')[0]
59
44
        results = sorted(out.rstrip('\n').split('\n'))
60
 
        self.assertEquals(['ignored CVS matching "CVS"'],
 
45
        self.assertEquals(['If you wish to add some of these files, please'\
 
46
                           ' add them by name.',
 
47
                           'ignored CVS matching "CVS"'],
61
48
                          results)
62
49
 
63
50
    def test_add_quiet_is(self):
64
51
        """add -q does not print the names of added files."""
65
 
        tree = self.make_branch_and_tree('.')
 
52
        self.run_bzr('init')
66
53
        self.build_tree(['top.txt', 'dir/', 'dir/sub.txt'])
67
54
        out = self.run_bzr('add -q')[0]
68
55
        # the ordering is not defined at the moment
74
61
 
75
62
        "bzr add" should add the parent(s) as necessary.
76
63
        """
77
 
        tree = self.make_branch_and_tree('.')
 
64
        self.run_bzr('init')
78
65
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
79
66
        self.assertEquals(self.run_bzr('unknowns')[0], 'inertiatic\n')
80
67
        self.run_bzr('add inertiatic/esp')
97
84
 
98
85
        "bzr add" should do this happily.
99
86
        """
100
 
        tree = self.make_branch_and_tree('.')
 
87
        self.run_bzr('init')
101
88
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
102
89
        self.assertEquals(self.run_bzr('unknowns')[0], 'inertiatic\n')
103
90
        self.run_bzr('add --no-recurse inertiatic')
111
98
 
112
99
        eq = self.assertEqual
113
100
        ass = self.assertTrue
114
 
 
 
101
        chdir = os.chdir
 
102
        
115
103
        t = self.make_branch_and_tree('.')
116
104
        b = t.branch
117
105
        self.build_tree(['src/', 'README'])
118
 
 
 
106
        
119
107
        eq(sorted(t.unknowns()),
120
108
           ['README', 'src'])
121
 
 
 
109
        
122
110
        self.run_bzr('add src')
123
 
 
 
111
        
124
112
        self.build_tree(['src/foo.c'])
125
 
 
 
113
        
126
114
        # add with no arguments in a subdirectory gets only files below that
127
115
        # subdirectory
128
 
        self.run_bzr('add', working_dir='src')
129
 
        self.assertEquals('README\n',
130
 
                          self.run_bzr('unknowns', working_dir='src')[0])
 
116
        chdir('src')
 
117
        self.run_bzr('add')
 
118
        self.assertEquals(self.run_bzr('unknowns')[0], 'README\n')
131
119
        # reopen to see the new changes
132
 
        t = t.bzrdir.open_workingtree('src')
 
120
        t = t.bzrdir.open_workingtree()
133
121
        versioned = [path for path, entry in t.iter_entries_by_dir()]
134
 
        self.assertEquals(versioned, ['', 'src', 'src/foo.c'])
135
 
 
 
122
        self.assertEquals(versioned,
 
123
            ['', 'src', 'src/foo.c'])
 
124
                
136
125
        # add from the parent directory should pick up all file names
 
126
        chdir('..')
137
127
        self.run_bzr('add')
138
128
        self.assertEquals(self.run_bzr('unknowns')[0], '')
139
129
        self.run_bzr('check')
155
145
        os.chdir('new')
156
146
        out, err = self.run_bzr('add --file-ids-from ../base')
157
147
        self.assertEqual('', err)
158
 
        self.assertEqualDiff('adding a w/ file id from a\n'
159
 
                             'adding b w/ file id from b\n'
160
 
                             'adding b/c w/ file id from b/c\n',
 
148
        self.assertEqualDiff('added a w/ file id from a\n'
 
149
                             'added b w/ file id from b\n'
 
150
                             'added b/c w/ file id from b/c\n',
161
151
                             out)
162
152
        new_tree = new_tree.bzrdir.open_workingtree()
163
153
        self.assertEqual(base_tree.path2id('a'), new_tree.path2id('a'))
176
166
        os.chdir('new')
177
167
        out, err = self.run_bzr('add --file-ids-from ../base/b')
178
168
        self.assertEqual('', err)
179
 
        self.assertEqualDiff('adding c w/ file id from b/c\n'
180
 
                             'adding d w/ file id from b/d\n',
 
169
        self.assertEqualDiff('added c w/ file id from b/c\n'
 
170
                             'added d w/ file id from b/d\n',
181
171
                             out)
182
172
 
183
173
        new_tree = new_tree.bzrdir.open_workingtree()
202
192
        self.build_tree(['.bzr/crescent'])
203
193
        err = self.run_bzr('add .bzr/crescent', retcode=3)[1]
204
194
        self.assertContainsRe(err, r'ERROR:.*\.bzr.*control file')
205
 
 
206
 
    def test_add_via_symlink(self):
207
 
        self.requireFeature(tests.SymlinkFeature)
208
 
        self.make_branch_and_tree('source')
209
 
        self.build_tree(['source/top.txt'])
210
 
        os.symlink('source', 'link')
211
 
        out = self.run_bzr(['add', 'link/top.txt'])[0]
212
 
        self.assertEquals(out, 'adding top.txt\n')
213
 
 
214
 
    def test_add_symlink_to_abspath(self):
215
 
        self.requireFeature(tests.SymlinkFeature)
216
 
        self.make_branch_and_tree('tree')
217
 
        os.symlink(osutils.abspath('target'), 'tree/link')
218
 
        out = self.run_bzr(['add', 'tree/link'])[0]
219
 
        self.assertEquals(out, 'adding link\n')