[py3] Fixed jsi18n test.
Also refactored said test to avoid leaking state (ie. active translation) when an error occurs.
This commit is contained in:
parent
478a69314e
commit
e0ec7507ac
|
@ -7,7 +7,8 @@ from os import path
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils.translation import override, activate, get_language
|
from django.utils import six
|
||||||
|
from django.utils.translation import override, get_language
|
||||||
from django.utils.text import javascript_quote
|
from django.utils.text import javascript_quote
|
||||||
|
|
||||||
from ..urls import locale_dir
|
from ..urls import locale_dir
|
||||||
|
@ -29,20 +30,21 @@ class I18NTests(TestCase):
|
||||||
|
|
||||||
def test_jsi18n(self):
|
def test_jsi18n(self):
|
||||||
"""The javascript_catalog can be deployed with language settings"""
|
"""The javascript_catalog can be deployed with language settings"""
|
||||||
saved_lang = get_language()
|
|
||||||
for lang_code in ['es', 'fr', 'ru']:
|
for lang_code in ['es', 'fr', 'ru']:
|
||||||
activate(lang_code)
|
with override(lang_code):
|
||||||
catalog = gettext.translation('djangojs', locale_dir, [lang_code])
|
catalog = gettext.translation('djangojs', locale_dir, [lang_code])
|
||||||
trans_txt = catalog.ugettext('this is to be translated')
|
if six.PY3:
|
||||||
response = self.client.get('/views/jsi18n/')
|
trans_txt = catalog.gettext('this is to be translated')
|
||||||
# in response content must to be a line like that:
|
else:
|
||||||
# catalog['this is to be translated'] = 'same_that_trans_txt'
|
trans_txt = catalog.ugettext('this is to be translated')
|
||||||
# javascript_quote is used to be able to check unicode strings
|
response = self.client.get('/views/jsi18n/')
|
||||||
self.assertContains(response, javascript_quote(trans_txt), 1)
|
# in response content must to be a line like that:
|
||||||
if lang_code == 'fr':
|
# catalog['this is to be translated'] = 'same_that_trans_txt'
|
||||||
# Message with context (msgctxt)
|
# javascript_quote is used to be able to check unicode strings
|
||||||
self.assertContains(response, "['month name\x04May'] = 'mai';", 1)
|
self.assertContains(response, javascript_quote(trans_txt), 1)
|
||||||
activate(saved_lang)
|
if lang_code == 'fr':
|
||||||
|
# Message with context (msgctxt)
|
||||||
|
self.assertContains(response, "['month name\x04May'] = 'mai';", 1)
|
||||||
|
|
||||||
|
|
||||||
class JsI18NTests(TestCase):
|
class JsI18NTests(TestCase):
|
||||||
|
|
Loading…
Reference in New Issue