Добавление класса LocaleManager
This commit is contained in:
@@ -13,7 +13,7 @@ from django.test import TestCase
|
||||
from net.xeaf.rack.enums import UILanguage
|
||||
|
||||
|
||||
class UILanguageTest(TestCase):
|
||||
class UILanguageTests(TestCase):
|
||||
"""
|
||||
Тесты для перечисления UILanguage
|
||||
"""
|
||||
@@ -34,3 +34,79 @@ class UILanguageTest(TestCase):
|
||||
for code in UILanguage.values():
|
||||
self.assertEqual(len(code), 2)
|
||||
self.assertTrue(code.islower())
|
||||
|
||||
def test_from_string_returns_english_for_en(self):
|
||||
"""
|
||||
Проверяем, что from_string возвращает ENGLISH для 'en'
|
||||
"""
|
||||
|
||||
result = UILanguage.from_string('en')
|
||||
self.assertEqual(result, UILanguage.ENGLISH)
|
||||
|
||||
def test_from_string_returns_russian_for_ru(self):
|
||||
"""
|
||||
Проверяем, что from_string возвращает RUSSIAN для 'ru'
|
||||
"""
|
||||
|
||||
result = UILanguage.from_string('ru')
|
||||
self.assertEqual(result, UILanguage.RUSSIAN)
|
||||
|
||||
def test_from_string_handles_uppercase(self):
|
||||
"""
|
||||
Проверяем, что from_string корректно обрабатывает заглавные буквы
|
||||
"""
|
||||
|
||||
result = UILanguage.from_string('EN')
|
||||
self.assertEqual(result, UILanguage.ENGLISH)
|
||||
|
||||
result = UILanguage.from_string('RU')
|
||||
self.assertEqual(result, UILanguage.RUSSIAN)
|
||||
|
||||
def test_from_string_handles_regional_variants(self):
|
||||
"""
|
||||
Проверяем, что from_string корректно обрабатывает региональные варианты и лишние суффиксы
|
||||
"""
|
||||
|
||||
test_cases = [
|
||||
('en-us', UILanguage.ENGLISH),
|
||||
('en-US', UILanguage.ENGLISH),
|
||||
('en-gb', UILanguage.ENGLISH),
|
||||
('en-GB', UILanguage.ENGLISH),
|
||||
('en-us-extra', UILanguage.ENGLISH), # лишний суффикс
|
||||
('en-us-extra-stuff', UILanguage.ENGLISH), # несколько суффиксов
|
||||
('ru-ru', UILanguage.RUSSIAN),
|
||||
('ru-RU', UILanguage.RUSSIAN),
|
||||
]
|
||||
|
||||
for value, expected in test_cases:
|
||||
with self.subTest(value=value):
|
||||
result = UILanguage.from_string(value)
|
||||
self.assertEqual(result, expected)
|
||||
|
||||
def test_from_string_raises_value_error_for_unknown(self):
|
||||
"""
|
||||
Проверяем, что from_string выбрасывает ValueError для неизвестного языка
|
||||
"""
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
UILanguage.from_string('fr')
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
UILanguage.from_string('de')
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
UILanguage.from_string('es')
|
||||
|
||||
def test_from_string_raises_value_error_for_invalid_format(self):
|
||||
"""
|
||||
Проверяем, что from_string выбрасывает ValueError для некорректного формата
|
||||
"""
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
UILanguage.from_string('123')
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
UILanguage.from_string('')
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
UILanguage.from_string('fr-FR') # 'fr' не поддерживается
|
||||
|
||||
Reference in New Issue
Block a user