~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_osutils_encodings.py

(gz) Remove bzrlib/util/elementtree/ package (Martin Packman)

Show diffs side-by-side

added added

removed removed

Lines of Context:
168
168
 
169
169
    def setUp(self):
170
170
        TestCase.setUp(self)
171
 
        self.overrideAttr(locale, 'getpreferredencoding')
 
171
        self.overrideAttr(osutils, '_cached_user_encoding', None)
 
172
        self.overrideAttr(locale, 'getpreferredencoding', self.get_encoding)
 
173
        self.overrideAttr(locale, 'CODESET', None)
172
174
        self.overrideAttr(sys, 'stderr', StringIOWrapper())
173
175
 
 
176
    def get_encoding(self, do_setlocale=True):
 
177
        return self._encoding
 
178
 
174
179
    def test_get_user_encoding(self):
175
 
        def f():
176
 
            return 'user_encoding'
177
 
 
178
 
        locale.getpreferredencoding = f
 
180
        self._encoding = 'user_encoding'
179
181
        fake_codec.add('user_encoding')
180
 
        self.assertEquals('user_encoding',
181
 
                          osutils.get_user_encoding(use_cache=False))
 
182
        self.assertEquals('iso8859-1', # fake_codec maps to latin-1
 
183
                          osutils.get_user_encoding())
182
184
        self.assertEquals('', sys.stderr.getvalue())
183
185
 
184
186
    def test_user_cp0(self):
185
 
        def f():
186
 
            return 'cp0'
187
 
 
188
 
        locale.getpreferredencoding = f
189
 
        self.assertEquals('ascii', osutils.get_user_encoding(use_cache=False))
 
187
        self._encoding = 'cp0'
 
188
        self.assertEquals('ascii', osutils.get_user_encoding())
190
189
        self.assertEquals('', sys.stderr.getvalue())
191
190
 
192
191
    def test_user_cp_unknown(self):
193
 
        def f():
194
 
            return 'cp-unknown'
195
 
 
196
 
        locale.getpreferredencoding = f
197
 
        self.assertEquals('ascii', osutils.get_user_encoding(use_cache=False))
 
192
        self._encoding = 'cp-unknown'
 
193
        self.assertEquals('ascii', osutils.get_user_encoding())
198
194
        self.assertEquals('bzr: warning: unknown encoding cp-unknown.'
199
195
                          ' Continuing with ascii encoding.\n',
200
196
                          sys.stderr.getvalue())
201
197
 
202
198
    def test_user_empty(self):
203
199
        """Running bzr from a vim script gives '' for a preferred locale"""
204
 
        def f():
205
 
            return ''
206
 
 
207
 
        locale.getpreferredencoding = f
208
 
        self.assertEquals('ascii', osutils.get_user_encoding(use_cache=False))
 
200
        self._encoding = ''
 
201
        self.assertEquals('ascii', osutils.get_user_encoding())
209
202
        self.assertEquals('', sys.stderr.getvalue())
210
 
 
211
 
    def test_user_locale_error(self):
212
 
        def f():
213
 
            raise locale.Error, 'unsupported locale'
214
 
 
215
 
        locale.getpreferredencoding = f
216
 
        self.overrideEnv('LANG', 'BOGUS')
217
 
        self.assertEquals('ascii', osutils.get_user_encoding(use_cache=False))
218
 
        self.assertEquals('bzr: warning: unsupported locale\n'
219
 
                          '  Could not determine what text encoding to use.\n'
220
 
                          '  This error usually means your Python interpreter\n'
221
 
                          '  doesn\'t support the locale set by $LANG (BOGUS)\n'
222
 
                          '  Continuing with ascii encoding.\n',
223
 
                          sys.stderr.getvalue())