From 67780b7ecc5b8b43bd2d91c1dade835dfa52f92c Mon Sep 17 00:00:00 2001 From: Taras Lytvynenko <69678257+Inferato@users.noreply.github.com> Date: Mon, 16 Oct 2023 10:22:00 +0300 Subject: [PATCH 1/3] fix: Name length validation --- openedx/core/djangoapps/user_api/accounts/api.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openedx/core/djangoapps/user_api/accounts/api.py b/openedx/core/djangoapps/user_api/accounts/api.py index bc4fd1d1a7..646ef51d63 100644 --- a/openedx/core/djangoapps/user_api/accounts/api.py +++ b/openedx/core/djangoapps/user_api/accounts/api.py @@ -420,6 +420,10 @@ def get_name_validation_error(name): return bool(regex) if name: + # Validation for the name length + if len(name) > 255: + return _("Full name can`t be longer than 255 symbols") + return _('Enter a valid name') if (contains_html(name) or contains_url(name)) else '' else: return accounts.REQUIRED_FIELD_NAME_MSG From 4fa06c0236d998bef94270ffad2d0751ef08f444 Mon Sep 17 00:00:00 2001 From: Taras Lytvynenko <69678257+Inferato@users.noreply.github.com> Date: Tue, 14 Nov 2023 20:25:00 +0200 Subject: [PATCH 2/3] test: test for length validation --- .../djangoapps/user_api/accounts/tests/test_api.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py index 569ec98466..367d73d8c9 100644 --- a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py +++ b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py @@ -34,7 +34,8 @@ from openedx.core.djangoapps.ace_common.tests.mixins import EmailTemplateTagMixi from openedx.core.djangoapps.user_api.accounts import PRIVATE_VISIBILITY from openedx.core.djangoapps.user_api.accounts.api import ( get_account_settings, - update_account_settings + update_account_settings, + get_name_validation_error ) from openedx.core.djangoapps.user_api.accounts.tests.retirement_helpers import ( # pylint: disable=unused-import RetirementTestCase, @@ -570,6 +571,13 @@ class TestAccountApi(UserSettingsEventTestMixin, EmailTemplateTagMixin, CreateAc assert account_settings['country'] is None assert account_settings['state'] is None + def test_get_name_validation_error_too_long(): + """ + Test validation error when the name is too long. + """ + result = get_name_validation_error("A" * 256) + assert result == 'Full name can`t be longer than 255 symbols' + @patch('openedx.core.djangoapps.user_api.accounts.image_helpers._PROFILE_IMAGE_SIZES', [50, 10]) @patch.dict( From 13d79453705ce81138589416e1a877ddfa960a6b Mon Sep 17 00:00:00 2001 From: Taras Lytvynenko <69678257+Inferato@users.noreply.github.com> Date: Tue, 14 Nov 2023 21:11:16 +0200 Subject: [PATCH 3/3] test: fix tests --- openedx/core/djangoapps/user_api/accounts/api.py | 2 +- openedx/core/djangoapps/user_api/accounts/tests/test_api.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openedx/core/djangoapps/user_api/accounts/api.py b/openedx/core/djangoapps/user_api/accounts/api.py index 646ef51d63..f1b20fd6ab 100644 --- a/openedx/core/djangoapps/user_api/accounts/api.py +++ b/openedx/core/djangoapps/user_api/accounts/api.py @@ -422,7 +422,7 @@ def get_name_validation_error(name): if name: # Validation for the name length if len(name) > 255: - return _("Full name can`t be longer than 255 symbols") + return _("Full name can't be longer than 255 symbols") return _('Enter a valid name') if (contains_html(name) or contains_url(name)) else '' else: diff --git a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py index 367d73d8c9..81a3158eb5 100644 --- a/openedx/core/djangoapps/user_api/accounts/tests/test_api.py +++ b/openedx/core/djangoapps/user_api/accounts/tests/test_api.py @@ -571,12 +571,12 @@ class TestAccountApi(UserSettingsEventTestMixin, EmailTemplateTagMixin, CreateAc assert account_settings['country'] is None assert account_settings['state'] is None - def test_get_name_validation_error_too_long(): + def test_get_name_validation_error_too_long(self): """ Test validation error when the name is too long. """ result = get_name_validation_error("A" * 256) - assert result == 'Full name can`t be longer than 255 symbols' + assert result == "Full name can't be longer than 255 symbols" @patch('openedx.core.djangoapps.user_api.accounts.image_helpers._PROFILE_IMAGE_SIZES', [50, 10])