mirror of
https://github.com/boostorg/website-v2.git
synced 2026-02-27 05:32:08 +00:00
122 lines
3.3 KiB
Python
122 lines
3.3 KiB
Python
import pytest
|
|
|
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
def test_regular_user(user):
|
|
assert user.is_active is True
|
|
assert user.is_staff is False
|
|
assert user.is_superuser is False
|
|
|
|
|
|
def test_staff_user(staff_user):
|
|
assert staff_user.is_active is True
|
|
assert staff_user.is_staff is True
|
|
assert staff_user.is_superuser is False
|
|
|
|
|
|
def test_super_user(super_user):
|
|
assert super_user.is_active is True
|
|
assert super_user.is_staff is True
|
|
assert super_user.is_superuser is True
|
|
|
|
|
|
def test_get_display_name(user):
|
|
# Test case 1: Display name is set
|
|
user.display_name = "Display Name"
|
|
user.save()
|
|
assert user.get_display_name == "Display Name"
|
|
|
|
# Test case 2: First and last name are set, no display name
|
|
user.display_name = ""
|
|
user.save()
|
|
assert user.get_display_name == f"{user.first_name} {user.last_name}"
|
|
|
|
# Test case 3: Only first name is set, no display name
|
|
user.first_name = "First"
|
|
user.last_name = ""
|
|
user.save()
|
|
assert user.get_display_name == "First"
|
|
|
|
# Test case 4: Only last name is set, no display name
|
|
user.first_name = ""
|
|
user.last_name = "Last"
|
|
user.save()
|
|
assert user.get_display_name == "Last"
|
|
|
|
|
|
@pytest.mark.skip("Add this test when I have the patience for mocks")
|
|
def test_user_save_image_from_github(user):
|
|
"""
|
|
Test `User.save_image_from_github(avatar_url)`
|
|
See test_signals -- you will need to do something similar here, but
|
|
dealing with a File object might make it trickier.
|
|
"""
|
|
pass
|
|
|
|
|
|
def test_find_contributor_by_email(user):
|
|
found_user = User.objects.find_contributor(email=user.email)
|
|
assert found_user == user
|
|
|
|
|
|
def test_find_contributor_by_email_not_found():
|
|
non_existent_email = "nonexistent@email.com"
|
|
found_user = User.objects.find_contributor(email=non_existent_email)
|
|
assert found_user is None
|
|
|
|
|
|
def test_find_contributor_not_author_or_maintainer(user: User):
|
|
found_user = User.objects.find_contributor(
|
|
first_name=user.first_name, last_name=user.last_name
|
|
)
|
|
assert found_user is None
|
|
|
|
|
|
def test_find_contributor_by_first_and_last_name_not_found():
|
|
non_existent_first_name = "Nonexistent"
|
|
non_existent_last_name = "User"
|
|
found_user = User.objects.find_contributor(
|
|
first_name=non_existent_first_name, last_name=non_existent_last_name
|
|
)
|
|
assert found_user is None
|
|
|
|
|
|
def test_find_contributor_by_first_and_last_name_multiple_results(user, staff_user):
|
|
staff_user.first_name = user.first_name
|
|
staff_user.last_name = user.last_name
|
|
staff_user.save()
|
|
|
|
found_user = User.objects.find_contributor(
|
|
first_name=user.first_name, last_name=user.last_name
|
|
)
|
|
assert found_user is None
|
|
|
|
|
|
def test_find_contributor_no_args():
|
|
found_user = User.objects.find_contributor()
|
|
assert found_user is None
|
|
|
|
|
|
def test_find_contributor_is_author(user, library):
|
|
library.authors.add(user)
|
|
library.save()
|
|
|
|
found_user = User.objects.find_contributor(
|
|
first_name=user.first_name, last_name=user.last_name
|
|
)
|
|
assert found_user == user
|
|
|
|
|
|
def test_find_contributor_is_maintainer(user, library_version):
|
|
library_version.maintainers.add(user)
|
|
library_version.save()
|
|
|
|
found_user = User.objects.find_contributor(
|
|
first_name=user.first_name, last_name=user.last_name
|
|
)
|
|
assert found_user == user
|