/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
1
# Copyright (C) 2006 Canonical Ltd
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
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
18
19
"""Black-box tests for 'bzr modified', which shows modified files."""
20
21
import os
22
23
from bzrlib.branch import Branch
24
from bzrlib.tests.blackbox import ExternalBase
25
26
class TestModified(ExternalBase):
27
28
    def test_modified(self):
29
        """Test that 'modified' command reports modified files"""
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
30
        self._test_modified('a', 'a')
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
31
32
    def test_modified_with_spaces(self):
33
        """Test that 'modified' command reports modified files with spaces in their names quoted"""
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
34
        self._test_modified('a filename with spaces', '"a filename with spaces"')
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
35
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
36
    def _test_modified(self, name, output):
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
37
3251.6.2 by Adrian Wilkins
Added null separation option for bzr modified and bzr added
38
        def check_modified(expected, null=False):
39
            command = 'modified'
40
            if null:
41
                command += ' --null'
42
            out, err = self.run_bzr(command)
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
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('')
53
        
54
        # after add, not modified
55
        tree.add(name)
56
        check_modified('')
57
58
        # after commit, not modified
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
59
        tree.commit(message='add %s' % output)
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
60
        check_modified('')
61
62
        # modify the file
63
        self.build_tree_contents([(name, 'changed\n')]) 
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
64
        check_modified(output + '\n')
3251.6.2 by Adrian Wilkins
Added null separation option for bzr modified and bzr added
65
        
3251.6.3 by Adrian Wilkins
Simplified and fixed test code
66
        # check null seps - use the unquoted raw name here
3251.6.2 by Adrian Wilkins
Added null separation option for bzr modified and bzr added
67
        check_modified(name + '\0', null=True)
3251.6.1 by Adrian Wilkins
Consistent implementation of path quoting in unknowns, added, modified.
68
69
        # now commit the file and it's no longer modified
70
        tree.commit(message='modified %s' %(name))
71
        check_modified('')
72