/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
1816.2.10 by Robey Pointer
code style changes
1
# Copyright (C) 2006 by Canonical Ltd
2
#
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
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.
1816.2.10 by Robey Pointer
code style changes
7
#
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
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.
1816.2.10 by Robey Pointer
code style changes
12
#
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
17
1816.2.10 by Robey Pointer
code style changes
18
"""Black-box tests for bzr whoami."""
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
19
20
import os
21
22
import bzrlib
23
from bzrlib.branch import Branch
24
from bzrlib.tests.blackbox import ExternalBase
25
26
27
class TestWhoami(ExternalBase):
28
29
    def test_whoami(self):
30
        # this should always identify something, if only "john@localhost"
1816.2.5 by Robey Pointer
clean up whoami tests a bit
31
        out = self.run_bzr("whoami")[0]
32
        self.assertTrue(len(out) > 0)
1816.2.10 by Robey Pointer
code style changes
33
        self.assertEquals(1, out.count('@'))
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
34
1816.2.5 by Robey Pointer
clean up whoami tests a bit
35
        out = self.run_bzr("whoami", "--email")[0]
36
        self.assertTrue(len(out) > 0)
1816.2.10 by Robey Pointer
code style changes
37
        self.assertEquals(1, out.count('@'))
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
38
        
39
    def test_whoami_branch(self):
40
        """branch specific user identity works."""
1816.2.10 by Robey Pointer
code style changes
41
        wt = self.make_branch_and_tree('.')
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
42
        b = bzrlib.branch.Branch.open('.')
1840.1.3 by Robey Pointer
fix some 80col wrapping and add a blackbox test to verify that a warning is displayed when a non-email identity is set
43
        b.get_config().set_user_option('email',
44
                                       'Branch Identity <branch@identi.ty>')
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
45
        bzr_email = os.environ.get('BZREMAIL')
46
        if bzr_email is not None:
47
            del os.environ['BZREMAIL']
1816.2.5 by Robey Pointer
clean up whoami tests a bit
48
        try:
49
            whoami = self.run_bzr("whoami")[0]
1816.2.10 by Robey Pointer
code style changes
50
            self.assertEquals('Branch Identity <branch@identi.ty>\n', whoami)
1816.2.5 by Robey Pointer
clean up whoami tests a bit
51
            whoami_email = self.run_bzr("whoami", "--email")[0]
1816.2.10 by Robey Pointer
code style changes
52
            self.assertEquals('branch@identi.ty\n', whoami_email)
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
53
1816.2.5 by Robey Pointer
clean up whoami tests a bit
54
            # Verify that the environment variable overrides the value 
55
            # in the file
56
            os.environ['BZREMAIL'] = 'Different ID <other@environ.ment>'
57
            whoami = self.run_bzr("whoami")[0]
1816.2.10 by Robey Pointer
code style changes
58
            self.assertEquals('Different ID <other@environ.ment>\n', whoami)
1816.2.5 by Robey Pointer
clean up whoami tests a bit
59
            whoami_email = self.run_bzr("whoami", "--email")[0]
1816.2.10 by Robey Pointer
code style changes
60
            self.assertEquals('other@environ.ment\n', whoami_email)
1816.2.5 by Robey Pointer
clean up whoami tests a bit
61
        finally:
62
            if bzr_email is not None:
63
                os.environ['BZREMAIL'] = bzr_email
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
64
65
    def test_whoami_utf8(self):
66
        """verify that an identity can be in utf-8."""
1816.2.10 by Robey Pointer
code style changes
67
        wt = self.make_branch_and_tree('.')
1840.1.3 by Robey Pointer
fix some 80col wrapping and add a blackbox test to verify that a warning is displayed when a non-email identity is set
68
        self.run_bzr('whoami', u'Branch Identity \u20ac <branch@identi.ty>',
69
                     encoding='utf-8')
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
70
        bzr_email = os.environ.get('BZREMAIL')
71
        if bzr_email is not None:
72
            del os.environ['BZREMAIL']
1816.2.5 by Robey Pointer
clean up whoami tests a bit
73
        try:
74
            whoami = self.run_bzr("whoami", encoding='utf-8')[0]
1840.1.3 by Robey Pointer
fix some 80col wrapping and add a blackbox test to verify that a warning is displayed when a non-email identity is set
75
            self.assertEquals('Branch Identity \xe2\x82\xac ' +
76
                              '<branch@identi.ty>\n', whoami)
77
            whoami_email = self.run_bzr("whoami", "--email",
78
                                        encoding='utf-8')[0]
1816.2.10 by Robey Pointer
code style changes
79
            self.assertEquals('branch@identi.ty\n', whoami_email)
1816.2.5 by Robey Pointer
clean up whoami tests a bit
80
        finally:
81
            if bzr_email is not None:
82
                os.environ['BZREMAIL'] = bzr_email
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
83
84
    def test_whoami_ascii(self):
1840.1.3 by Robey Pointer
fix some 80col wrapping and add a blackbox test to verify that a warning is displayed when a non-email identity is set
85
        """
86
        verify that whoami doesn't totally break when in utf-8, using an ascii
87
        encoding.
88
        """
1816.2.10 by Robey Pointer
code style changes
89
        wt = self.make_branch_and_tree('.')
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
90
        b = bzrlib.branch.Branch.open('.')
1840.1.3 by Robey Pointer
fix some 80col wrapping and add a blackbox test to verify that a warning is displayed when a non-email identity is set
91
        b.get_config().set_user_option('email', u'Branch Identity \u20ac ' +
92
                                       '<branch@identi.ty>')
1816.2.3 by Robey Pointer
move the whoami blackbox tests into their own file and add more tests
93
        bzr_email = os.environ.get('BZREMAIL')
94
        if bzr_email is not None:
1816.2.5 by Robey Pointer
clean up whoami tests a bit
95
            del os.environ['BZREMAIL']
96
        try:
97
            whoami = self.run_bzr("whoami", encoding='ascii')[0]
1816.2.10 by Robey Pointer
code style changes
98
            self.assertEquals('Branch Identity ? <branch@identi.ty>\n', whoami)
1840.1.3 by Robey Pointer
fix some 80col wrapping and add a blackbox test to verify that a warning is displayed when a non-email identity is set
99
            whoami_email = self.run_bzr("whoami", "--email",
100
                                        encoding='ascii')[0]
1816.2.10 by Robey Pointer
code style changes
101
            self.assertEquals('branch@identi.ty\n', whoami_email)
1816.2.5 by Robey Pointer
clean up whoami tests a bit
102
        finally:
103
            if bzr_email is not None:
104
                os.environ['BZREMAIL'] = bzr_email
1840.1.3 by Robey Pointer
fix some 80col wrapping and add a blackbox test to verify that a warning is displayed when a non-email identity is set
105
106
    def test_warning(self):
107
        """verify that a warning is displayed if no email is given."""
108
        self.make_branch_and_tree('.')
109
        display = self.run_bzr('whoami', 'Branch Identity')[1]
1840.1.5 by Robey Pointer
change the warning message for a 'whoami' with no email address, on jam's recommendation
110
        self.assertEquals('"Branch Identity" does not seem to contain an '
111
                          'email address.  This is allowed, but not '
112
                          'recommended.\n', display)