| 1 |
from os import path |
|---|
| 2 |
import gettext |
|---|
| 3 |
|
|---|
| 4 |
from django.conf import settings |
|---|
| 5 |
from django.test import TestCase |
|---|
| 6 |
from django.utils.translation import activate |
|---|
| 7 |
|
|---|
| 8 |
from regressiontests.views.urls import locale_dir |
|---|
| 9 |
|
|---|
| 10 |
class I18NTests(TestCase): |
|---|
| 11 |
""" Tests django views in django/views/i18n.py """ |
|---|
| 12 |
|
|---|
| 13 |
def test_setlang(self): |
|---|
| 14 |
"""The set_language view can be used to change the session language""" |
|---|
| 15 |
for lang_code, lang_name in settings.LANGUAGES: |
|---|
| 16 |
post_data = dict(language=lang_code, next='/views/') |
|---|
| 17 |
response = self.client.post('/views/i18n/setlang/', data=post_data) |
|---|
| 18 |
self.assertRedirects(response, 'http://testserver/views/') |
|---|
| 19 |
self.assertEquals(self.client.session['django_language'], lang_code) |
|---|
| 20 |
|
|---|
| 21 |
def test_jsi18n(self): |
|---|
| 22 |
"""The javascript_catalog can be deployed with language settings""" |
|---|
| 23 |
for lang_code in ['es', 'fr', 'en']: |
|---|
| 24 |
activate(lang_code) |
|---|
| 25 |
catalog = gettext.translation('djangojs', locale_dir, [lang_code]) |
|---|
| 26 |
trans_txt = catalog.ugettext('this is to be translated') |
|---|
| 27 |
response = self.client.get('/views/jsi18n/') |
|---|
| 28 |
# in response content must to be a line like that: |
|---|
| 29 |
# catalog['this is to be translated'] = 'same_that_trans_txt' |
|---|
| 30 |
self.assertContains(response, trans_txt, 1) |
|---|