~bzr-pqm/bzr/bzr.dev

5273.1.8 by Vincent Ladeuil
Merge bzr.dev into cleanup
1
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
3251.6.6 by John Arbash Meinel
Fix the line endings of bzrlib.tests.blackbox.test_modified, they were dos, should be unix
2
# -*- coding: utf-8 -*-
3
#
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.
8
#
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.
13
#
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
3251.6.6 by John Arbash Meinel
Fix the line endings of bzrlib.tests.blackbox.test_modified, they were dos, should be unix
17
18
19
"""Black-box tests for 'bzr modified', which shows modified files."""
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
3251.6.6 by John Arbash Meinel
Fix the line endings of bzrlib.tests.blackbox.test_modified, they were dos, should be unix
25
5283.4.5 by Martin Pool
Update remaining subclasses of ExternalBase
26
class TestModified(TestCaseWithTransport):
3251.6.6 by John Arbash Meinel
Fix the line endings of bzrlib.tests.blackbox.test_modified, they were dos, should be unix
27
28
    def test_modified(self):
29
        """Test that 'modified' command reports modified files"""
30
        self._test_modified('a', 'a')
31
32
    def test_modified_with_spaces(self):
33
        """Test that 'modified' command reports modified files with spaces in their names quoted"""
34
        self._test_modified('a filename with spaces', '"a filename with spaces"')
35
36
    def _test_modified(self, name, output):
37
38
        def check_modified(expected, null=False):
39
            command = 'modified'
40
            if null:
41
                command += ' --null'
42
            out, err = self.run_bzr(command)
43
            self.assertEquals(out, expected)
44
            self.assertEquals(err, '')
45
46
        # in empty directory, nothing modified
47
        tree = self.make_branch_and_tree('.')
48
        check_modified('')
49
50
        # with unknown file, still nothing modified
51
        self.build_tree_contents([(name, 'contents of %s\n' % (name))])
52
        check_modified('')
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
53
3251.6.6 by John Arbash Meinel
Fix the line endings of bzrlib.tests.blackbox.test_modified, they were dos, should be unix
54
        # after add, not modified
55
        tree.add(name)
56
        check_modified('')
57
58
        # after commit, not modified
59
        tree.commit(message='add %s' % output)
60
        check_modified('')
61
62
        # modify the file
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
63
        self.build_tree_contents([(name, 'changed\n')])
3251.6.6 by John Arbash Meinel
Fix the line endings of bzrlib.tests.blackbox.test_modified, they were dos, should be unix
64
        check_modified(output + '\n')
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
65
3251.6.6 by John Arbash Meinel
Fix the line endings of bzrlib.tests.blackbox.test_modified, they were dos, should be unix
66
        # check null seps - use the unquoted raw name here
67
        check_modified(name + '\0', null=True)
68
69
        # now commit the file and it's no longer modified
70
        tree.commit(message='modified %s' %(name))
71
        check_modified('')
72
5171.3.7 by Martin von Gagern
Added blackbox tests for --directory option.
73
    def test_modified_directory(self):
74
        """Test --directory option"""
75
        tree = self.make_branch_and_tree('a')
76
        self.build_tree(['a/README'])
77
        tree.add('README')
78
        tree.commit('r1')
79
        self.build_tree_contents([('a/README', 'changed\n')])
80
        out, err = self.run_bzr(['modified', '--directory=a'])
81
        self.assertEquals('README\n', out)