From 88f99cf736eecd051348ca2e266fde94335a2498 Mon Sep 17 00:00:00 2001 From: amercader Date: Mon, 22 Jun 2015 11:56:05 +0100 Subject: [PATCH 1/2] [#2415] Allow uppercase emails on user invites Just lowercase the user name created from the email address --- ckan/logic/action/create.py | 2 +- ckan/tests/logic/action/test_create.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index 28c9103203d..dafbefb484b 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -1093,7 +1093,7 @@ def user_invite(context, data_dict): def _get_random_username_from_email(email): localpart = email.split('@')[0] - cleaned_localpart = re.sub(r'[^\w]', '-', localpart) + cleaned_localpart = re.sub(r'[^\w]', '-', localpart).lower() # if we can't create a unique user name within this many attempts # then something else is probably wrong and we should give up diff --git a/ckan/tests/logic/action/test_create.py b/ckan/tests/logic/action/test_create.py index 1b1b2611a44..bbf160d13ee 100644 --- a/ckan/tests/logic/action/test_create.py +++ b/ckan/tests/logic/action/test_create.py @@ -75,6 +75,12 @@ def test_requires_role(self, _): def test_requires_group_id(self, _): self._invite_user_to_group(group={'id': None}) + @mock.patch('ckan.lib.mailer.send_invite') + def test_user_name_lowercase_when_email_is_uppercase(self, _): + invited_user = self._invite_user_to_group(email='Maria@example.com') + + assert_equals(invited_user.name.split('-')[0], 'maria') + def _invite_user_to_group(self, email='user@email.com', group=None, role='member'): user = factories.User() From 4f0af501c65fc78605f451e60440a6c28f7e7117 Mon Sep 17 00:00:00 2001 From: amercader Date: Mon, 22 Jun 2015 13:13:18 +0100 Subject: [PATCH 2/2] [#1940] Fix failing test after change on form id --- ckan/tests/controllers/test_user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ckan/tests/controllers/test_user.py b/ckan/tests/controllers/test_user.py index ba4ca411dd2..e420b94c0e9 100644 --- a/ckan/tests/controllers/test_user.py +++ b/ckan/tests/controllers/test_user.py @@ -55,7 +55,7 @@ def test_edit_user(self): extra_environ=env, ) # existing values in the form - form = response.forms['user-edit'] + form = response.forms['user-edit-form'] assert_equal(form['name'].value, user['name']) assert_equal(form['fullname'].value, user['fullname']) assert_equal(form['email'].value, user['email'])