Mercurial > babel > old > mirror
comparison babel/tests/core.py @ 536:9facabfe91d0
catch exception if environment contains an invalid locale setting (fixes #200)
author | fschwarz |
---|---|
date | Fri, 11 Mar 2011 16:20:57 +0000 |
parents | e93f68837913 |
children |
comparison
equal
deleted
inserted
replaced
535:bfda66d78688 | 536:9facabfe91d0 |
---|---|
10 # This software consists of voluntary contributions made by many | 10 # This software consists of voluntary contributions made by many |
11 # individuals. For the exact contribution history, see the revision | 11 # individuals. For the exact contribution history, see the revision |
12 # history and logs, available at http://babel.edgewall.org/log/. | 12 # history and logs, available at http://babel.edgewall.org/log/. |
13 | 13 |
14 import doctest | 14 import doctest |
15 import os | |
15 import unittest | 16 import unittest |
16 | 17 |
17 from babel import core | 18 from babel import core |
19 from babel.core import default_locale | |
20 | |
21 class DefaultLocaleTest(unittest.TestCase): | |
22 | |
23 def setUp(self): | |
24 self._old_locale_settings = self._current_locale_settings() | |
25 | |
26 def tearDown(self): | |
27 self._set_locale_settings(self._old_locale_settings) | |
28 | |
29 def _current_locale_settings(self): | |
30 settings = {} | |
31 for name in ('LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LANG'): | |
32 settings[name] = os.environ[name] | |
33 return settings | |
34 | |
35 def _set_locale_settings(self, settings): | |
36 for name, value in settings.items(): | |
37 os.environ[name] = value | |
38 | |
39 def test_ignore_invalid_locales_in_lc_ctype(self): | |
40 # This is a regression test specifically for a bad LC_CTYPE setting on | |
41 # MacOS X 10.6 (#200) | |
42 os.environ['LC_CTYPE'] = 'UTF-8' | |
43 # must not throw an exception | |
44 default_locale('LC_CTYPE') | |
18 | 45 |
19 def suite(): | 46 def suite(): |
20 suite = unittest.TestSuite() | 47 suite = unittest.TestSuite() |
21 suite.addTest(doctest.DocTestSuite(core)) | 48 suite.addTest(doctest.DocTestSuite(core)) |
49 suite.addTest(unittest.makeSuite(DefaultLocaleTest)) | |
22 return suite | 50 return suite |
23 | 51 |
24 if __name__ == '__main__': | 52 if __name__ == '__main__': |
25 unittest.main(defaultTest='suite') | 53 unittest.main(defaultTest='suite') |