~bzr-pqm/bzr/bzr.dev

5273.1.8 by Vincent Ladeuil
Merge bzr.dev into cleanup
1
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
2900.3.6 by Tim Penhey
Added tests.
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 as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2900.3.6 by Tim Penhey
Added tests.
16
#
17
18
"""Tests of the 'bzr alias' command."""
5158.7.4 by Parth Malwankar
failcase test_unicode_alias for bug #529930 is valid now.
19
import os
20
import codecs
2900.3.6 by Tim Penhey
Added tests.
21
5283.4.5 by Martin Pool
Update remaining subclasses of ExternalBase
22
from bzrlib.tests import TestCaseWithTransport
5158.7.2 by Parth Malwankar
intermediate checkin of test case
23
from bzrlib.config import (ensure_config_dir_exists, config_filename)
2900.3.6 by Tim Penhey
Added tests.
24
25
5283.4.5 by Martin Pool
Update remaining subclasses of ExternalBase
26
class TestAlias(TestCaseWithTransport):
2900.3.6 by Tim Penhey
Added tests.
27
28
    def test_list_alias_with_none(self):
29
        """Calling alias with no parameters lists existing aliases."""
2900.3.11 by Tim Penhey
Fixed the output in the tests.
30
        out, err = self.run_bzr('alias')
2900.3.6 by Tim Penhey
Added tests.
31
        self.assertEquals('', out)
32
33
    def test_list_unknown_alias(self):
2900.3.11 by Tim Penhey
Fixed the output in the tests.
34
        out, err = self.run_bzr('alias commit')
35
        self.assertEquals('bzr alias: commit: not found\n', out)
2900.3.6 by Tim Penhey
Added tests.
36
37
    def test_add_alias_outputs_nothing(self):
2900.3.11 by Tim Penhey
Fixed the output in the tests.
38
        out, err = self.run_bzr('alias commit="commit --strict"')
2900.3.6 by Tim Penhey
Added tests.
39
        self.assertEquals('', out)
40
41
    def test_add_alias_visible(self):
42
        """Adding an alias makes it ..."""
43
        self.run_bzr('alias commit="commit --strict"')
2900.3.11 by Tim Penhey
Fixed the output in the tests.
44
        out, err = self.run_bzr('alias commit')
45
        self.assertEquals('bzr alias commit="commit --strict"\n', out)
2900.3.6 by Tim Penhey
Added tests.
46
5158.7.1 by Parth Malwankar
added fail case test for unicode alias
47
    def test_unicode_alias(self):
48
        """Unicode aliases should work (Bug #529930)"""
5158.7.12 by Parth Malwankar
updated test to work on windows
49
        config_enc = 'utf-8'
50
        file_name = u'foo\xb6'
5158.7.7 by Parth Malwankar
updated test case to use user_encoding instead of utf-8
51
5158.7.15 by Parth Malwankar
test cleanup.
52
        tree = self.make_branch_and_tree('.')
53
        self.build_tree([file_name])
54
        tree.add(file_name)
55
        tree.commit('added')
5158.7.2 by Parth Malwankar
intermediate checkin of test case
56
57
        ensure_config_dir_exists()
5158.7.4 by Parth Malwankar
failcase test_unicode_alias for bug #529930 is valid now.
58
        CONFIG=(u'[ALIASES]\n'
5158.7.12 by Parth Malwankar
updated test to work on windows
59
                u'ust=st foo\xb6\n')
60
61
        codecs.open(config_filename(),'w', config_enc).write(CONFIG)
62
63
        out, err = self.run_bzr('ust')
5158.7.5 by Parth Malwankar
unicode aliases work now.
64
        self.assertEquals(err, '')
5158.7.12 by Parth Malwankar
updated test to work on windows
65
        self.assertEquals(out, '')
5158.7.1 by Parth Malwankar
added fail case test for unicode alias
66
2900.3.6 by Tim Penhey
Added tests.
67
    def test_alias_listing_alphabetical(self):
68
        self.run_bzr('alias commit="commit --strict"')
69
        self.run_bzr('alias ll="log --short"')
70
        self.run_bzr('alias add="add -q"')
71
2900.3.11 by Tim Penhey
Fixed the output in the tests.
72
        out, err = self.run_bzr('alias')
2900.3.6 by Tim Penhey
Added tests.
73
        self.assertEquals(
2900.3.11 by Tim Penhey
Fixed the output in the tests.
74
            'bzr alias add="add -q"\n'
75
            'bzr alias commit="commit --strict"\n'
76
            'bzr alias ll="log --short"\n',
77
            out)
2900.3.6 by Tim Penhey
Added tests.
78
79
    def test_remove_unknown_alias(self):
2900.3.11 by Tim Penhey
Fixed the output in the tests.
80
        out, err = self.run_bzr('alias --remove fooix', retcode=3)
81
        self.assertEquals('bzr: ERROR: The alias "fooix" does not exist.\n',
82
                          err)
2900.3.6 by Tim Penhey
Added tests.
83
84
    def test_remove_known_alias(self):
85
        self.run_bzr('alias commit="commit --strict"')
2900.3.11 by Tim Penhey
Fixed the output in the tests.
86
        out, err = self.run_bzr('alias commit')
87
        self.assertEquals('bzr alias commit="commit --strict"\n', out)
2900.3.6 by Tim Penhey
Added tests.
88
        # No output when removing an existing alias.
2900.3.11 by Tim Penhey
Fixed the output in the tests.
89
        out, err = self.run_bzr('alias --remove commit')
2900.3.6 by Tim Penhey
Added tests.
90
        self.assertEquals('', out)
91
        # Now its not.
2900.3.11 by Tim Penhey
Fixed the output in the tests.
92
        out, err = self.run_bzr('alias commit')
93
        self.assertEquals("bzr alias: commit: not found\n", out)