diff --git a/openedx/core/djangoapps/user_api/accounts/api.py b/openedx/core/djangoapps/user_api/accounts/api.py index 603f9b86e0..3520eeacff 100644 --- a/openedx/core/djangoapps/user_api/accounts/api.py +++ b/openedx/core/djangoapps/user_api/accounts/api.py @@ -657,8 +657,10 @@ def _validate_password(password, username=None): _validate_type(password, basestring, accounts.PASSWORD_BAD_TYPE_MSG) validate_password(password, username=username) - except (errors.AccountDataBadType, ValidationError) as invalid_password_err: + except errors.AccountDataBadType as invalid_password_err: raise errors.AccountPasswordInvalid(text_type(invalid_password_err)) + except ValidationError as validation_err: + raise errors.AccountPasswordInvalid(validation_err.message) def _validate_country(country): diff --git a/openedx/core/djangoapps/user_api/validation/tests/test_views.py b/openedx/core/djangoapps/user_api/validation/tests/test_views.py index 57ffcc1944..7924648aab 100644 --- a/openedx/core/djangoapps/user_api/validation/tests/test_views.py +++ b/openedx/core/djangoapps/user_api/validation/tests/test_views.py @@ -175,7 +175,7 @@ class RegistrationValidationViewTests(test_utils.ApiTestCase): msg = u'Password: Invalid Length (must be {0} characters or more)'.format(password_min_length()) self.assertValidationDecision( {'password': ''}, - {"password": text_type([msg])} + {"password": msg} ) def test_password_bad_min_length_validation_decision(self): @@ -183,7 +183,7 @@ class RegistrationValidationViewTests(test_utils.ApiTestCase): msg = u'Password: Invalid Length (must be {0} characters or more)'.format(password_min_length()) self.assertValidationDecision( {'password': password}, - {"password": text_type([msg])} + {"password": msg} ) def test_password_bad_max_length_validation_decision(self): @@ -191,11 +191,11 @@ class RegistrationValidationViewTests(test_utils.ApiTestCase): msg = u'Password: Invalid Length (must be {0} characters or fewer)'.format(password_max_length()) self.assertValidationDecision( {'password': password}, - {"password": text_type([msg])} + {"password": msg} ) def test_password_equals_username_validation_decision(self): self.assertValidationDecision( {"username": "somephrase", "password": "somephrase"}, - {"username": "", "password": text_type([u"Password cannot be the same as the username"])} + {"username": "", "password": u"Password cannot be the same as the username"} )