diff --git a/bookwyrm/tests/test_views.py b/bookwyrm/tests/test_views.py index ba4531f69..2c4353b7b 100644 --- a/bookwyrm/tests/test_views.py +++ b/bookwyrm/tests/test_views.py @@ -23,6 +23,18 @@ class Views(TestCase): connector_file='self_connector', local=True ) + self.local_user = models.User.objects.create_user( + 'mouse', 'mouse@mouse.mouse', 'password', local=True) + + + def test_get_user_from_username(self): + ''' works for either localname or username ''' + self.assertEqual( + views.get_user_from_username('mouse'), self.local_user) + self.assertEqual( + views.get_user_from_username('mouse@%s' % DOMAIN), self.local_user) + with self.assertRaises(models.User.DoesNotExist): + views.get_user_from_username('mojfse@example.com') def test_search_json_response(self): diff --git a/bookwyrm/views.py b/bookwyrm/views.py index 946c061ba..df08ab18f 100644 --- a/bookwyrm/views.py +++ b/bookwyrm/views.py @@ -13,7 +13,7 @@ from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_GET from bookwyrm import outgoing -from bookwyrm.activitypub import ActivityEncoder, ActivitypubResponse +from bookwyrm.activitypub import ActivitypubResponse from bookwyrm import forms, models, books_manager from bookwyrm import goodreads_import from bookwyrm.settings import PAGE_LENGTH @@ -23,11 +23,11 @@ from bookwyrm.utils import regex def get_user_from_username(username): ''' helper function to resolve a localname or a username to a user ''' + # raises DoesNotExist if user is now found try: - user = models.User.objects.get(localname=username) + return models.User.objects.get(localname=username) except models.User.DoesNotExist: - user = models.User.objects.get(username=username) - return user + return models.User.objects.get(username=username) def is_api_request(request):