39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
"""
|
|
Tests: lang pref views
|
|
"""
|
|
import json
|
|
from django.test import TestCase
|
|
from django.test.client import RequestFactory
|
|
from django.core.urlresolvers import reverse
|
|
from student.tests.factories import UserFactory
|
|
from django.utils.translation import LANGUAGE_SESSION_KEY
|
|
from django.contrib.sessions.middleware import SessionMiddleware
|
|
from django.utils.translation import get_language
|
|
|
|
|
|
class TestLangPrefView(TestCase):
|
|
"""
|
|
Language preference view tests.
|
|
"""
|
|
|
|
def setUp(self):
|
|
super(TestLangPrefView, self).setUp()
|
|
self.session_middleware = SessionMiddleware()
|
|
self.user = UserFactory.create()
|
|
self.request = RequestFactory().get('/somewhere')
|
|
self.request.user = self.user
|
|
self.session_middleware.process_request(self.request)
|
|
|
|
def test_language_session_update(self):
|
|
# test language session updating correctly.
|
|
self.request.session[LANGUAGE_SESSION_KEY] = 'ar' # pylint: disable=no-member
|
|
response = self.client.patch(reverse("session_language"), json.dumps({'pref-lang': 'eo'}))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.client.get('/')
|
|
self.assertEquals(get_language(), 'eo')
|
|
|
|
response = self.client.patch(reverse("session_language"), json.dumps({'pref-lang': 'en'}))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.client.get('/')
|
|
self.assertEquals(get_language(), 'en')
|