diff --git a/lms/djangoapps/instructor/tests/test_api.py b/lms/djangoapps/instructor/tests/test_api.py index 2021851328..cb6c456f2e 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -251,6 +251,14 @@ def view_alreadyrunningerror(request): # pylint: disable=unused-argument raise AlreadyRunningError() +@common_exceptions_400 +def view_alreadyrunningerror_unicode(request): # pylint: disable=unused-argument + """ + A dummy view that raises an AlreadyRunningError exception with unicode message + """ + raise AlreadyRunningError(u'Text with unicode chárácters') + + @common_exceptions_400 def view_queue_connection_error(request): # pylint: disable=unused-argument """ @@ -287,17 +295,19 @@ class TestCommonExceptions400(TestCase): self.assertEqual(resp.status_code, 400) self.assertIn("User does not exist", resp.content) - def test_alreadyrunningerror(self): - self.request.is_ajax.return_value = False + @ddt.data(True, False) + def test_alreadyrunningerror(self, is_ajax): + self.request.is_ajax.return_value = is_ajax resp = view_alreadyrunningerror(self.request) # pylint: disable=assignment-from-no-return self.assertEqual(resp.status_code, 400) self.assertIn("Requested task is already running", resp.content) - def test_alreadyrunningerror_ajax(self): - self.request.is_ajax.return_value = True - resp = view_alreadyrunningerror(self.request) # pylint: disable=assignment-from-no-return + @ddt.data(True, False) + def test_alreadyrunningerror_with_unicode(self, is_ajax): + self.request.is_ajax.return_value = is_ajax + resp = view_alreadyrunningerror_unicode(self.request) # pylint: disable=assignment-from-no-return self.assertEqual(resp.status_code, 400) - self.assertIn("Requested task is already running", resp.content) + self.assertIn('Text with unicode chárácters', resp.content) @ddt.data(True, False) def test_queue_connection_error(self, is_ajax): diff --git a/lms/djangoapps/instructor/views/api.py b/lms/djangoapps/instructor/views/api.py index 533c5c5c51..196e16ea62 100644 --- a/lms/djangoapps/instructor/views/api.py +++ b/lms/djangoapps/instructor/views/api.py @@ -150,7 +150,7 @@ def common_exceptions_400(func): except User.DoesNotExist: message = _('User does not exist.') except (AlreadyRunningError, QueueConnectionError) as err: - message = str(err) + message = unicode(err) if use_json: return JsonResponseBadRequest(message)