Passed
Push — master ( 6f77b1...954ddf )
by Oleksandr
11:42
created

tests.test_package.PackageTestCase.test_lazy()   A

Complexity

Conditions 1

Size

Total Lines 23
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 23
rs 9.65
c 0
b 0
f 0
cc 1
nop 1
1
import unittest
2
3
from verboselib import drop_default_language
4
from verboselib import drop_language
5
from verboselib import get_default_language
6
from verboselib import set_default_language
7
from verboselib import set_language
8
from verboselib import set_language_bypass
9
from verboselib import Translations
10
11
from .constants import LOCALE_DOMAIN
12
from .constants import LOCALE_DIR_PATH
13
14
15
class PackageTestCase(unittest.TestCase):
16
17
  def setUp(self):
18
    drop_default_language()
19
    drop_language()
20
21
    self.translations = Translations(LOCALE_DOMAIN, LOCALE_DIR_PATH)
22
23
  def tearDown(self):
24
    del self.translations
25
26
    drop_default_language()
27
    drop_language()
28
29
  def test_bypass(self):
30
    _ = self.translations.gettext
31
    source = "verboselib test string"
32
33
    translated = _("verboselib test string")
34
    self.assertEqual(translated, source)
35
36
    set_language("en")
37
    translated = _("verboselib test string")
38
    self.assertNotEqual(translated, source)
39
40
    set_language_bypass()
41
    translated = _("verboselib test string")
42
    self.assertEqual(translated, source)
43
44
  def test_set_default_language(self):
45
    _ = self.translations.gettext
46
47
    translated = _("verboselib test string")
48
    self.assertEqual(translated, "verboselib test string")
49
50
    set_default_language("ru")
51
    translated = _("verboselib test string")
52
    self.assertEqual(translated, "verboselib test string in ru")
53
54
    set_default_language("uk")
55
    translated = _("verboselib test string")
56
    self.assertEqual(translated, "verboselib test string in uk")
57
58
    set_default_language("en")
59
    translated = _("verboselib test string")
60
    self.assertEqual(translated, "verboselib test string in en_US")
61
62
    set_default_language("en-gb")
63
    translated = _("verboselib test string")
64
    self.assertEqual(translated, "verboselib test string in en_GB")
65
66
  def test_get_default_language(self):
67
    self.assertEqual(get_default_language(), None)
68
    set_default_language("en")
69
    self.assertEqual(get_default_language(), "en")
70
71
  def test_use_n_drop_language(self):
72
    _ = self.translations.gettext
73
74
    translated = _("verboselib test string")
75
    self.assertEqual(translated, "verboselib test string")
76
77
    set_default_language("en")
78
79
    set_language("ru")
80
    translated = _("verboselib test string")
81
    self.assertEqual(translated, "verboselib test string in ru")
82
83
    drop_language()
84
    translated = _("verboselib test string")
85
    self.assertEqual(translated, "verboselib test string in en_US")
86
87
  def test_lazy(self):
88
    L_ = self.translations.gettext_lazy
89
90
    set_language("uk")
91
92
    translated = L_("verboselib test string")
93
94
    set_language("ru")
95
    self.assertEqual(translated, "verboselib test string in ru")
96
97
    set_language("en-gb")
98
    self.assertEqual(translated, "verboselib test string in en_GB")
99
100
    set_language_bypass()
101
    self.assertEqual(translated, "verboselib test string")
102
103
    translated = L_("Good morning, {:}!")
104
105
    set_language("ru")
106
    self.assertEqual(translated.format("Иван"), "Доброе утро, Иван!")
107
108
    set_language("uk")
109
    self.assertEqual(translated.format("Іване"), "Доброго ранку, Іване!")
110