~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_osutils_encodings.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-09-01 08:02:42 UTC
  • mfrom: (5390.3.3 faster-revert-593560)
  • Revision ID: pqm@pqm.ubuntu.com-20100901080242-esg62ody4frwmy66
(spiv) Avoid repeatedly calling self.target.all_file_ids() in
 InterTree.iter_changes. (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 Canonical Ltd
 
1
# Copyright (C) 2006-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
75
75
 
76
76
    def setUp(self):
77
77
        TestCase.setUp(self)
78
 
        self._stdout = sys.stdout
79
 
        self._stderr = sys.stderr
80
 
        self._stdin = sys.stdin
81
 
        self._user_encoding = osutils._cached_user_encoding
82
 
 
83
 
        self.addCleanup(self._reset)
 
78
        self.overrideAttr(sys, 'stdin')
 
79
        self.overrideAttr(sys, 'stdout')
 
80
        self.overrideAttr(sys, 'stderr')
 
81
        self.overrideAttr(osutils, '_cached_user_encoding')
84
82
 
85
83
    def make_wrapped_streams(self,
86
84
                             stdout_encoding,
100
98
            fake_codec.add(stderr_encoding)
101
99
            fake_codec.add(stdin_encoding)
102
100
 
103
 
    def _reset(self):
104
 
        sys.stdout = self._stdout
105
 
        sys.stderr = self._stderr
106
 
        sys.stdin = self._stdin
107
 
        osutils._cached_user_encoding = self._user_encoding
108
 
 
109
101
    def test_get_terminal_encoding(self):
110
102
        self.make_wrapped_streams('stdout_encoding',
111
103
                                  'stderr_encoding',
122
114
        # and in the worst case, use osutils.get_user_encoding()
123
115
        self.assertEqual('user_encoding', osutils.get_terminal_encoding())
124
116
 
 
117
    def test_get_terminal_encoding_silent(self):
 
118
        self.make_wrapped_streams('stdout_encoding',
 
119
                                  'stderr_encoding',
 
120
                                  'stdin_encoding')
 
121
        # Calling get_terminal_encoding should not mutter when silent=True is
 
122
        # passed.
 
123
        log = self.get_log()
 
124
        osutils.get_terminal_encoding()
 
125
        self.assertEqual(log, self.get_log())
 
126
 
 
127
    def test_get_terminal_encoding_trace(self):
 
128
        self.make_wrapped_streams('stdout_encoding',
 
129
                                  'stderr_encoding',
 
130
                                  'stdin_encoding')
 
131
        # Calling get_terminal_encoding should not mutter when silent=True is
 
132
        # passed.
 
133
        log = self.get_log()
 
134
        osutils.get_terminal_encoding(trace=True)
 
135
        self.assertNotEqual(log, self.get_log())
 
136
 
125
137
    def test_terminal_cp0(self):
126
138
        # test cp0 encoding (Windows returns cp0 when there is no encoding)
127
139
        self.make_wrapped_streams('cp0',
158
170
 
159
171
    def setUp(self):
160
172
        TestCase.setUp(self)
161
 
        self._stderr = sys.stderr
162
 
        self._getpreferredencoding = locale.getpreferredencoding
163
 
        self.addCleanup(self._reset)
164
 
        sys.stderr = StringIOWrapper()
165
 
        # save $LANG
166
 
        self._LANG = os.environ.get('LANG')
167
 
 
168
 
    def _reset(self):
169
 
        locale.getpreferredencoding = self._getpreferredencoding
170
 
        sys.stderr = self._stderr
171
 
        # restore $LANG
172
 
        osutils.set_or_unset_env('LANG', self._LANG)
 
173
        self.overrideAttr(locale, 'getpreferredencoding')
 
174
        self.addCleanup(osutils.set_or_unset_env,
 
175
                        'LANG', os.environ.get('LANG'))
 
176
        self.overrideAttr(sys, 'stderr', StringIOWrapper())
173
177
 
174
178
    def test_get_user_encoding(self):
175
179
        def f():