summaryrefslogtreecommitdiff
path: root/tests/test_core.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_core.py')
-rw-r--r--tests/test_core.py90
1 files changed, 30 insertions, 60 deletions
diff --git a/tests/test_core.py b/tests/test_core.py
index f00a13d..9341ca8 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -12,7 +12,6 @@
# history and logs, available at http://babel.edgewall.org/log/.
import doctest
-import os
import unittest
import pytest
@@ -20,62 +19,35 @@ from babel import core, Locale
from babel.core import default_locale, Locale
-class LocaleEnvironmentTestMixin(object):
+def test_locale_provides_access_to_cldr_locale_data():
+ locale = Locale('en', 'US')
+ assert u'English (United States)' == locale.display_name
+ assert u'.' == locale.number_symbols['decimal']
- def setUp(self):
- self._old_locale_settings = self.current_locale_settings()
+def test_locale_repr():
+ assert ("Locale('de', territory='DE')" == repr(Locale('de', 'DE')))
+ assert ("Locale('zh', territory='CN', script='Hans')" ==
+ repr(Locale('zh', 'CN', script='Hans')))
- def tearDown(self):
- self.reset_locale_settings(self._old_locale_settings)
+def test_locale_comparison():
+ en_US = Locale('en', 'US')
+ assert en_US == en_US
+ assert None != en_US
- def current_locale_settings(self):
- settings = {}
- for name in ('LC_MESSAGES', 'LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LANG'):
- settings[name] = os.environ.get(name)
- return settings
+ bad_en_US = Locale('en_US')
+ assert en_US != bad_en_US
- def reset_locale_settings(self, settings):
- for name, value in settings.items():
- if value is not None:
- os.environ[name] = value
- elif name in os.environ:
- del os.environ[name]
+def test_can_return_default_locale(os_environ):
+ os_environ['LC_MESSAGES'] = 'fr_FR.UTF-8'
+ assert Locale('fr', 'FR') == Locale.default('LC_MESSAGES')
-class LocaleTest(LocaleEnvironmentTestMixin, unittest.TestCase):
-
- def test_locale_provides_access_to_cldr_locale_data(self):
- locale = Locale('en', 'US')
- self.assertEqual(u'English (United States)', locale.display_name)
- self.assertEqual(u'.', locale.number_symbols['decimal'])
-
- def test_repr(self):
- self.assertEqual("Locale('de', territory='DE')",
- repr(Locale('de', 'DE')))
- self.assertEqual("Locale('zh', territory='CN', script='Hans')",
- repr(Locale('zh', 'CN', script='Hans')))
-
- def test_locale_comparison(self):
- en_US = Locale('en', 'US')
- self.assertEqual(en_US, en_US)
- self.assertNotEqual(None, en_US)
-
- bad_en_US = Locale('en_US')
- self.assertNotEqual(en_US, bad_en_US)
-
- def test_can_return_default_locale(self):
- os.environ['LC_MESSAGES'] = 'fr_FR.UTF-8'
- self.assertEqual(Locale('fr', 'FR'), Locale.default('LC_MESSAGES'))
-
-
-class DefaultLocaleTest(LocaleEnvironmentTestMixin, unittest.TestCase):
-
- def test_ignore_invalid_locales_in_lc_ctype(self):
- # This is a regression test specifically for a bad LC_CTYPE setting on
- # MacOS X 10.6 (#200)
- os.environ['LC_CTYPE'] = 'UTF-8'
- # must not throw an exception
- default_locale('LC_CTYPE')
+def test_ignore_invalid_locales_in_lc_ctype(os_environ):
+ # This is a regression test specifically for a bad LC_CTYPE setting on
+ # MacOS X 10.6 (#200)
+ os_environ['LC_CTYPE'] = 'UTF-8'
+ # must not throw an exception
+ default_locale('LC_CTYPE')
def test_get_global():
@@ -93,11 +65,10 @@ class TestLocaleClass:
assert locale.language == 'en'
assert locale.territory == 'US'
- def test_default(self):
- # TODO isolate this test
+ def test_default(self, os_environ):
for name in ['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES']:
- os.environ[name] = ''
- os.environ['LANG'] = 'fr_FR.UTF-8'
+ os_environ[name] = ''
+ os_environ['LANG'] = 'fr_FR.UTF-8'
default = Locale.default('LC_MESSAGES')
assert (default.language, default.territory) == ('fr', 'FR')
@@ -233,14 +204,13 @@ class TestLocaleClass:
assert Locale('ru').plural_form(100) == 'many'
-def test_default_locale():
- # TODO isolate this test
+def test_default_locale(os_environ):
for name in ['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES']:
- os.environ[name] = ''
- os.environ['LANG'] = 'fr_FR.UTF-8'
+ os_environ[name] = ''
+ os_environ['LANG'] = 'fr_FR.UTF-8'
assert default_locale('LC_MESSAGES') == 'fr_FR'
- os.environ['LC_MESSAGES'] = 'POSIX'
+ os_environ['LC_MESSAGES'] = 'POSIX'
assert default_locale('LC_MESSAGES') == 'en_US_POSIX'