diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py index 0d7a5c220c2..1a124f4eb85 100644 --- a/ckan/logic/action/create.py +++ b/ckan/logic/action/create.py @@ -1106,7 +1106,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 78fbf287f67..57c7b8e2309 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()