1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#!/usr/bin/python
import os
import unittest
from testutils import setup_test_env
setup_test_env()
from softwarecenter.i18n import (
init_locale,
get_language, get_languages, langcode_to_name)
class TestI18n(unittest.TestCase):
""" tests the sc i18n """
def tearDown(self):
os.environ["LANGUAGE"] = ""
os.environ["LC_ALL"] = ""
os.environ["LANG"] = ""
def test_langcode_to_name(self):
self.assertEqual(langcode_to_name("de"), "German")
def test_locale(self):
# needs lang + country code
os.environ["LANGUAGE"] = "zh_TW"
self.assertEqual(get_language(), "zh_TW")
# language only
os.environ["LANGUAGE"] = "fr_FR"
self.assertEqual(get_language(), "fr")
# not existing one
os.environ["LANGUAGE"] = "xx_XX"
self.assertEqual(get_language(), "en")
# LC_ALL, no language
del os.environ["LANGUAGE"]
os.environ["LC_ALL"] = "C"
os.environ["LANG"] = "C"
self.assertEqual(get_language(), "en")
def test_invalid_get_languages(self):
# set LANGUAGE to a invalid language and verify that it correctly
# falls back to english
os.environ["LANGUAGE"] = "yxy_YYY"
self.assertEqual(get_languages(), ["en"])
def test_init_locale(self):
import locale
os.environ["LANGUAGE"] = ""
os.environ["LC_ALL"] = "en_US.UTF-8"
init_locale()
self.assertEqual(
locale.getlocale(locale.LC_MESSAGES), ("en_US", "UTF-8"))
if __name__ == "__main__":
import logging
logging.basicConfig(level=logging.DEBUG)
unittest.main()
|