~bzr-pqm/bzr/bzr.dev

5171.3.7 by Martin von Gagern
Added blackbox tests for --directory option.
1
# Copyright (C) 2006-2010 Canonical Ltd
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
2
# -*- coding: utf-8 -*-
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
3
#
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
8
#
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
13
#
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
17
18
1711.1.2 by Robert Collins
'bzr add' is now less verbose in telling you what ignore globs were
19
"""Black-box tests for 'bzr added', which shows newly-added files."""
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
20
21
import os
22
23
from bzrlib.branch import Branch
5283.4.5 by Martin Pool
Update remaining subclasses of ExternalBase
24
from bzrlib.tests import TestCaseWithTransport
25
26
27
class TestAdded(TestCaseWithTransport):
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
28
29
    def test_added(self):
30
        """Test that 'added' command reports added files"""
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
31
        self._test_added('a', 'a\n')
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
32
33
    def test_added_with_spaces(self):
34
        """Test that 'added' command reports added files with spaces in their names quoted"""
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
35
        self._test_added('a filename with spaces', '"a filename with spaces"\n')
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
36
3251.6.4 by John Arbash Meinel
minor cleanups
37
    def test_added_null_separator(self):
38
        """Test that added uses its null operator properly"""
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
39
        self._test_added('a', 'a\0', null=True)
3251.6.2 by Adrian Wilkins
Added null separation option for bzr modified and bzr added
40
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
41
    def _test_added(self, name, output, null=False):
3251.6.2 by Adrian Wilkins
Added null separation option for bzr modified and bzr added
42
43
        def check_added(expected, null=False):
44
            command = 'added'
45
46
            if null:
47
                command += ' --null'
48
49
            out, err = self.run_bzr(command)
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
50
            self.assertEquals(out, expected)
51
            self.assertEquals(err, '')
52
53
        # in empty directory, nothing added
2664.6.1 by Daniel Watkins
tests.blackbox.test_added now uses internals where appropriate.
54
        tree = self.make_branch_and_tree('.')
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
55
        check_added('')
56
57
        # with unknown file, still nothing added
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
58
        self.build_tree_contents([(name, 'contents of %s\n' % (name))])
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
59
        check_added('')
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
60
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
61
        # after add, shows up in list
62
        # bug report 20060119 by Nathan McCallum -- 'bzr added' causes
63
        # NameError
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
64
        tree.add(name)
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
65
        check_added(output, null)
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
66
67
        # after commit, now no longer listed
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
68
        tree.commit(message='add "%s"' % (name))
1548 by Martin Pool
Fix 'bzr added' typo, and tests for that command.
69
        check_added('')
5171.3.7 by Martin von Gagern
Added blackbox tests for --directory option.
70
71
    def test_added_directory(self):
72
        """Test --directory option"""
73
        tree = self.make_branch_and_tree('a')
74
        self.build_tree(['a/README'])
75
        tree.add('README')
76
        out, err = self.run_bzr(['added', '--directory=a'])
77
        self.assertEquals('README\n', out)