~bzr-pqm/bzr/bzr.dev

1185.33.72 by Martin Pool
Fix commit message template for non-ascii files, and add test for handling of
1
# Copyright (C) 2005 by Canonical Ltd
2
#
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License version 2 as published by
5
# the Free Software Foundation.
6
#
7
# This program is distributed in the hope that it will be useful,
8
# but WITHOUT ANY WARRANTY; without even the implied warranty of
9
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
# GNU General Public License for more details.
11
#
12
# You should have received a copy of the GNU General Public License
13
# along with this program; if not, write to the Free Software
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15
16
"""Test commit message editor.
17
"""
18
19
import os
20
import sys
21
22
from bzrlib.branch import Branch
23
from bzrlib.msgeditor import make_commit_message_template
1185.33.97 by Martin Pool
MsgEditor tests should be skipped on platforms without unicode fs.
24
from bzrlib.tests import TestCaseInTempDir, TestSkipped
1185.33.72 by Martin Pool
Fix commit message template for non-ascii files, and add test for handling of
25
26
27
class MsgEditorTest(TestCaseInTempDir):
28
1526.1.4 by Robert Collins
forgot my self.
29
    def make_uncommitted_tree(self):
1526.1.1 by Robert Collins
Run the test suite with no locale as well as the default locale. Also add a test for build_tree_shape to selftest.
30
        """Build a branch with uncommitted unicode named changes in the cwd."""
31
        b = Branch.initialize('.')
32
        working_tree = b.working_tree()
33
        filename = u'hell\u00d8'
1526.1.3 by Robert Collins
Merge from upstream.
34
        try:
35
            self.build_tree_contents([(filename, 'contents of hello')])
36
        except UnicodeEncodeError:
37
            raise TestSkipped("can't build unicode working tree in "
1185.33.97 by Martin Pool
MsgEditor tests should be skipped on platforms without unicode fs.
38
                "filesystem encoding %s" % sys.getfilesystemencoding())
1526.1.1 by Robert Collins
Run the test suite with no locale as well as the default locale. Also add a test for build_tree_shape to selftest.
39
        working_tree.add(filename)
40
        return working_tree
41
    
1185.33.72 by Martin Pool
Fix commit message template for non-ascii files, and add test for handling of
42
    def test_commit_template(self):
43
        """Test building a commit message template"""
1526.1.2 by Robert Collins
Fix typo in my msgeditor test changes.
44
        working_tree = self.make_uncommitted_tree()
1185.33.72 by Martin Pool
Fix commit message template for non-ascii files, and add test for handling of
45
        template = make_commit_message_template(working_tree, None)
46
        self.assertEqualDiff(template,
47
u"""\
48
added:
49
  hell\u00d8
50
""")