~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_osutils_encodings.py

  • Committer: Samuel Bronson
  • Date: 2012-08-30 20:36:18 UTC
  • mto: (6015.57.3 2.4)
  • mto: This revision was merged to the branch mainline in revision 6558.
  • Revision ID: naesten@gmail.com-20120830203618-y2dzw91nqpvpgxvx
Update INSTALL for switch to Python 2.6 and up.

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(osutils, '_cached_user_encoding', None)
172
 
        self.overrideAttr(locale, 'getpreferredencoding', self.get_encoding)
173
 
        self.overrideAttr(locale, 'CODESET', None)
 
171
        self.overrideAttr(locale, 'getpreferredencoding')
174
172
        self.overrideAttr(sys, 'stderr', StringIOWrapper())
175
173
 
176
 
    def get_encoding(self, do_setlocale=True):
177
 
        return self._encoding
178
 
 
179
174
    def test_get_user_encoding(self):
180
 
        self._encoding = 'user_encoding'
 
175
        def f():
 
176
            return 'user_encoding'
 
177
 
 
178
        locale.getpreferredencoding = f
181
179
        fake_codec.add('user_encoding')
182
 
        self.assertEquals('iso8859-1', # fake_codec maps to latin-1
183
 
                          osutils.get_user_encoding())
 
180
        self.assertEquals('user_encoding',
 
181
                          osutils.get_user_encoding(use_cache=False))
184
182
        self.assertEquals('', sys.stderr.getvalue())
185
183
 
186
184
    def test_user_cp0(self):
187
 
        self._encoding = 'cp0'
188
 
        self.assertEquals('ascii', osutils.get_user_encoding())
 
185
        def f():
 
186
            return 'cp0'
 
187
 
 
188
        locale.getpreferredencoding = f
 
189
        self.assertEquals('ascii', osutils.get_user_encoding(use_cache=False))
189
190
        self.assertEquals('', sys.stderr.getvalue())
190
191
 
191
192
    def test_user_cp_unknown(self):
192
 
        self._encoding = 'cp-unknown'
193
 
        self.assertEquals('ascii', osutils.get_user_encoding())
 
193
        def f():
 
194
            return 'cp-unknown'
 
195
 
 
196
        locale.getpreferredencoding = f
 
197
        self.assertEquals('ascii', osutils.get_user_encoding(use_cache=False))
194
198
        self.assertEquals('bzr: warning: unknown encoding cp-unknown.'
195
199
                          ' Continuing with ascii encoding.\n',
196
200
                          sys.stderr.getvalue())
197
201
 
198
202
    def test_user_empty(self):
199
203
        """Running bzr from a vim script gives '' for a preferred locale"""
200
 
        self._encoding = ''
201
 
        self.assertEquals('ascii', osutils.get_user_encoding())
 
204
        def f():
 
205
            return ''
 
206
 
 
207
        locale.getpreferredencoding = f
 
208
        self.assertEquals('ascii', osutils.get_user_encoding(use_cache=False))
202
209
        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())