Make sure QuestionView.get_question_message is in a unicode context.
This is important if the attribute question_message is set with ugettext_lazy which needs an unicode context Fixes #1066
This commit is contained in:
parent
89c7bd1277
commit
4fa2c25978
@ -355,7 +355,7 @@ class QuestionView(RedirectView):
|
|||||||
"""
|
"""
|
||||||
Returns the question.
|
Returns the question.
|
||||||
"""
|
"""
|
||||||
return self.question_message
|
return unicode(self.question_message)
|
||||||
|
|
||||||
def get_answer_options(self):
|
def get_answer_options(self):
|
||||||
"""
|
"""
|
||||||
@ -376,16 +376,13 @@ class QuestionView(RedirectView):
|
|||||||
for option in self.get_answer_options()])
|
for option in self.get_answer_options()])
|
||||||
messages.warning(
|
messages.warning(
|
||||||
self.request,
|
self.request,
|
||||||
"""
|
'%(message)s<form action="%(url)s" method="post">'
|
||||||
%(message)s
|
'<input type="hidden" value="%(csrf)s" name="csrfmiddlewaretoken">'
|
||||||
<form action="%(url)s" method="post">
|
'%(option_fields)s</form>' % {
|
||||||
<input type="hidden" value="%(csrf)s" name="csrfmiddlewaretoken">
|
'message': self.get_question_message(),
|
||||||
%(option_fields)s
|
'url': self.request.path,
|
||||||
</form>
|
'csrf': csrf(self.request)['csrf_token'],
|
||||||
""" % {'message': self.get_question_message(),
|
'option_fields': option_fields})
|
||||||
'url': self.request.path,
|
|
||||||
'csrf': csrf(self.request)['csrf_token'],
|
|
||||||
'option_fields': option_fields})
|
|
||||||
|
|
||||||
def pre_post_redirect(self, request, *args, **kwargs):
|
def pre_post_redirect(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -164,6 +164,9 @@ class QuestionViewTest(ViewTestCase):
|
|||||||
view.question_message = 'new_question'
|
view.question_message = 'new_question'
|
||||||
self.assertEqual(get_question_message(), 'new_question')
|
self.assertEqual(get_question_message(), 'new_question')
|
||||||
|
|
||||||
|
# Make sure it is unicode, so ugettext_lazy can work
|
||||||
|
self.assertIsInstance(get_question_message(), unicode)
|
||||||
|
|
||||||
def test_get_answer_options(self):
|
def test_get_answer_options(self):
|
||||||
view = views.QuestionView()
|
view = views.QuestionView()
|
||||||
get_answer_options = view.get_answer_options
|
get_answer_options = view.get_answer_options
|
||||||
@ -186,6 +189,9 @@ class QuestionViewTest(ViewTestCase):
|
|||||||
|
|
||||||
self.assertTrue(mock_messages.warning.called)
|
self.assertTrue(mock_messages.warning.called)
|
||||||
|
|
||||||
|
question = mock_messages.warning.call_args[0][1]
|
||||||
|
self.assertIn('the question', question)
|
||||||
|
|
||||||
|
|
||||||
def set_context(sender, request, context, **kwargs):
|
def set_context(sender, request, context, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user