Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[py3] Fixed jsi18n test.

Also refactored said test to avoid leaking state (ie. active
translation) when an error occurs.
  • Loading branch information...
commit e0ec7507ac6c9e08ddbdf8a3ddedc430b22c7be9 1 parent 478a693
@aaugustin aaugustin authored
Showing with 16 additions and 14 deletions.
  1. +16 −14 tests/regressiontests/views/tests/i18n.py
View
30 tests/regressiontests/views/tests/i18n.py
@@ -7,7 +7,8 @@
from django.conf import settings
from django.core.urlresolvers import reverse
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 ..urls import locale_dir
@@ -29,20 +30,21 @@ def test_setlang_reversal(self):
def test_jsi18n(self):
"""The javascript_catalog can be deployed with language settings"""
- saved_lang = get_language()
for lang_code in ['es', 'fr', 'ru']:
- activate(lang_code)
- catalog = gettext.translation('djangojs', locale_dir, [lang_code])
- trans_txt = catalog.ugettext('this is to be translated')
- response = self.client.get('/views/jsi18n/')
- # in response content must to be a line like that:
- # catalog['this is to be translated'] = 'same_that_trans_txt'
- # javascript_quote is used to be able to check unicode strings
- self.assertContains(response, javascript_quote(trans_txt), 1)
- if lang_code == 'fr':
- # Message with context (msgctxt)
- self.assertContains(response, "['month name\x04May'] = 'mai';", 1)
- activate(saved_lang)
+ with override(lang_code):
+ catalog = gettext.translation('djangojs', locale_dir, [lang_code])
+ if six.PY3:
+ trans_txt = catalog.gettext('this is to be translated')
+ else:
+ trans_txt = catalog.ugettext('this is to be translated')
+ response = self.client.get('/views/jsi18n/')
+ # in response content must to be a line like that:
+ # catalog['this is to be translated'] = 'same_that_trans_txt'
+ # javascript_quote is used to be able to check unicode strings
+ self.assertContains(response, javascript_quote(trans_txt), 1)
+ if lang_code == 'fr':
+ # Message with context (msgctxt)
+ self.assertContains(response, "['month name\x04May'] = 'mai';", 1)
class JsI18NTests(TestCase):
Please sign in to comment.
Something went wrong with that request. Please try again.