def test_set_language(self):

        request = self.factory.post('/languages/',
                                    json.dumps({'lang': 'ru'}),
                                    content_type="application/json")
        smiddleware = SessionMiddleware()
        lmiddleware = LocaleMiddleware()
        smiddleware.process_request(request)
        lmiddleware.process_request(request)
        request.session.save()

        response = LanguagesView.as_view()(request)

        lmiddleware.process_response(request, response)

        self.assertEqual(response.status_code, 200)

        response_content = response.content

        if six.PY3:
            response_content = str(response_content, encoding='utf8')

        self.assertJSONEqual(response_content, {u'success': True})

        self.assertEqual(response['Content-Language'], u'ru')
    def test_get_languages(self):

        request = self.factory.get('/languages/')
        response = LanguagesView.as_view()(request)
        self.assertEqual(response.status_code, 200)

        response_content = response.content
        if six.PY3:
            response_content = str(response_content, encoding='utf8')

        expected = {u'current': 0,
                    u'languages': [{u'code': u'en', u'name': u'English'},
                                   {u'code': u'ru', u'name': u'Russian'},
                                   {u'code': u'de', u'name': u'German'}]}

        self.assertJSONEqual(response_content, expected)