Merge pull request #23980 from edx/aehsan/PROD-1582/specify_user_message_for_about_me_in_profile

Specify bio field error message for user
This commit is contained in:
adeelehsan
2020-06-10 14:46:04 +05:00
committed by GitHub
2 changed files with 13 additions and 2 deletions

View File

@@ -611,10 +611,15 @@ class TestAccountsAPI(CacheIsolationTestCase, UserAPITestCase):
if fails_validation_value:
error_response = self.send_patch(client, {field: fails_validation_value}, expected_status=400)
expected_user_message = u'This value is invalid.'
if field == 'bio':
expected_user_message = u"The about me field must be at most 300 characters long."
self.assertEqual(
u'This value is invalid.',
expected_user_message,
error_response.data["field_errors"][field]["user_message"]
)
self.assertEqual(
u"Value '{value}' is not valid for field '{field}': {messages}".format(
value=fails_validation_value, field=field, messages=[developer_validation_message]

View File

@@ -23,6 +23,7 @@ from rest_framework.views import APIView
from six import text_type, iteritems
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
from openedx.core.djangoapps.user_api.accounts import BIO_MAX_LENGTH
from openedx.core.lib.api.authentication import BearerAuthenticationAllowInactiveUser
from openedx.core.lib.api.permissions import IsUserInUrl
@@ -154,11 +155,16 @@ def add_serializer_errors(serializer, data, field_errors):
errors = serializer.errors
for key, error in iteritems(errors):
error = clean_errors(error)
if key == 'bio':
user_message = _(u"The about me field must be at most {} characters long.".format(BIO_MAX_LENGTH))
else:
user_message = _(u"This value is invalid.")
field_errors[key] = {
'developer_message': u"Value '{field_value}' is not valid for field '{field_name}': {error}".format(
field_value=data.get(key, ''), field_name=key, error=error
),
'user_message': _(u"This value is invalid."),
'user_message': user_message,
}
return field_errors