[CHANGE] split it into 2 functions

- `get_main_character_from_user` to return the `EveCharacter` object
- `get_main_character_name_from_user` to return the main character name as string
This commit is contained in:
Peter Pfeufer 2023-11-03 19:54:18 +01:00
parent 4cc7135ace
commit a747951d19
No known key found for this signature in database
GPG Key ID: 6051D2C6AD4EBC27
2 changed files with 38 additions and 12 deletions

View File

@ -2,8 +2,12 @@
Alliance Auth User API
"""
from typing import Optional
from django.contrib.auth.models import User
from allianceauth.eveonline.models import EveCharacter
def get_sentinel_user() -> User:
"""
@ -14,8 +18,7 @@ def get_sentinel_user() -> User:
return User.objects.get_or_create(username="deleted")[0]
def get_main_character_from_user(user: User) -> str:
def get_main_character_from_user(user: User) -> Optional[EveCharacter]:
"""
Get the main character from a user
@ -25,14 +28,37 @@ def get_main_character_from_user(user: User) -> str:
:rtype:
"""
if user is None:
return None
try:
main_character = user.profile.main_character
except AttributeError:
return None
return main_character
def get_main_character_name_from_user(user: User) -> str:
"""
Get the main character name from a user
:param user:
:type user:
:return:
:rtype:
"""
if user is None:
sentinel_user = get_sentinel_user()
return sentinel_user.username
main_character = get_main_character_from_user(user=user)
try:
return_value = user.profile.main_character.character_name
username = main_character.character_name
except AttributeError:
return str(user)
return return_value
return username

View File

@ -10,7 +10,7 @@ from django.test import TestCase
# Alliance Auth
from allianceauth.framework.api.user import get_sentinel_user, \
get_main_character_from_user
get_main_character_name_from_user
from allianceauth.tests.auth_utils import AuthUtils
@ -74,7 +74,7 @@ class TestGetMainForUser(TestCase):
user=cls.user, name=character_name, character_id=1001
)
def test_get_main_character_from_user_should_return_character_name(self):
def test_get_main_character_name_from_user_should_return_character_name(self):
"""
Test should return the main character name for a regular user
@ -82,11 +82,11 @@ class TestGetMainForUser(TestCase):
:rtype:
"""
character_name = get_main_character_from_user(user=self.user)
character_name = get_main_character_name_from_user(user=self.user)
self.assertEqual(first=character_name, second="William T. Riker")
def test_get_main_character_from_user_should_return_user_name(self):
def test_get_main_character_name_from_user_should_return_user_name(self):
"""
Test should return just the username for a user without a character
@ -96,11 +96,11 @@ class TestGetMainForUser(TestCase):
user = AuthUtils.create_user(username="John Doe")
character_name = get_main_character_from_user(user=user)
character_name = get_main_character_name_from_user(user=user)
self.assertEqual(first=character_name, second="John Doe")
def test_get_main_character_from_user_should_return_sentinel_user(self):
def test_get_main_character_name_from_user_should_return_sentinel_user(self):
"""
Test should return "deleted" as username (Sentinel User)
@ -110,7 +110,7 @@ class TestGetMainForUser(TestCase):
user = get_sentinel_user()
character_name = get_main_character_from_user(user=user)
character_name = get_main_character_name_from_user(user=user)
self.assertEqual(first=character_name, second="deleted")
@ -124,6 +124,6 @@ class TestGetMainForUser(TestCase):
user = None
character_name = get_main_character_from_user(user=user)
character_name = get_main_character_name_from_user(user=user)
self.assertEqual(first=character_name, second="deleted")