/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
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
from bzrlib.tests.treeshape import build_tree_contents
27
28
29
def make_uncommitted_tree():
30
    """Build a branch with uncommitted changes in the cwd."""
31
    b = Branch.initialize('.')
32
    working_tree = b.working_tree()
33
    filename = u'hell\u00d8'
1185.33.97 by Martin Pool
MsgEditor tests should be skipped on platforms without unicode fs.
34
    try:
35
        build_tree_contents([(filename, 'contents of hello')])
36
    except UnicodeEncodeError:
37
        raise TestSkipped("can't build unicode working tree in "
38
                "filesystem encoding %s" % sys.getfilesystemencoding())
1185.33.72 by Martin Pool
Fix commit message template for non-ascii files, and add test for handling of
39
    working_tree.add(filename)
40
    return working_tree
41
42
43
class MsgEditorTest(TestCaseInTempDir):
44
45
    def test_commit_template(self):
46
        """Test building a commit message template"""
47
        working_tree = make_uncommitted_tree()
48
        template = make_commit_message_template(working_tree, None)
49
        self.assertEqualDiff(template,
50
u"""\
51
added:
52
  hell\u00d8
53
""")