Browse Source

ref: Add method to User for grabbing proper name for salutation (#6405)

* Add method to grab proper first name for salutation from User
Dena Mwangi 7 years ago
parent
commit
25364e4d10
2 changed files with 18 additions and 1 deletions
  1. 5 0
      src/sentry/models/user.py
  2. 13 1
      tests/sentry/models/test_user.py

+ 5 - 0
src/sentry/models/user.py

@@ -138,6 +138,11 @@ class User(BaseModel, AbstractBaseUser):
     def get_short_name(self):
         return self.username
 
+    def get_salutation_name(self):
+        name = self.name or self.username.split('@', 1)[0].split('.', 1)[0]
+        first_name = name.split(' ', 1)[0]
+        return first_name.capitalize()
+
     def get_avatar_type(self):
         avatar = self.avatar.first()
         if avatar:

+ 13 - 1
tests/sentry/models/test_user.py

@@ -1,9 +1,21 @@
 from __future__ import absolute_import
 
-from sentry.models import Authenticator, OrganizationMember, UserEmail
+from sentry.models import Authenticator, OrganizationMember, User, UserEmail
 from sentry.testutils import TestCase
 
 
+class UserDetailsTest(TestCase):
+    def test_salutation(self):
+        user = self.create_user(email='a@example.com', username='a@example.com')
+        assert user.get_salutation_name() == 'A'
+
+        user.update(name='hello world', email='b@example.com')
+        user = User.objects.get(id=user.id)
+        assert user.name == 'hello world'
+        assert user.email == 'b@example.com'
+        assert user.get_salutation_name() == 'Hello'
+
+
 class UserMergeToTest(TestCase):
     def test_simple(self):
         from_user = self.create_user('foo@example.com')