Files
website-v2/users/tests/fixtures.py

95 lines
2.2 KiB
Python

import io
from PIL import Image
import pytest
from model_bakery import baker
from django.utils import timezone
@pytest.fixture
def user(db):
"""Regular website user"""
user = baker.make(
"users.User",
email="user@example.com",
display_name="Regular User",
indicate_last_login_method=False,
is_commit_author_name_overridden=False,
last_login=timezone.now(),
image=None,
)
filename = "normal-user.png"
file = io.BytesIO()
file.name = filename
image = Image.new("RGBA", size=(100, 100), color=(155, 0, 0))
image.save(file, "png")
file.seek(0)
user.profile_image.save(filename, file)
user.set_password("password")
user.save()
return user
@pytest.fixture
def staff_user(db):
"""Staff website user with access to the Django admin"""
user = baker.make(
"users.User",
email="staff@example.com",
display_name="Staff User",
last_login=timezone.now(),
is_staff=True,
image=None,
)
filename = "staff-user.png"
file = io.BytesIO()
file.name = filename
image = Image.new("RGBA", size=(100, 100), color=(155, 0, 0))
image.save(file, "png")
file.seek(0)
user.profile_image.save(filename, file)
user.set_password("password")
user.save()
return user
@pytest.fixture
def super_user(db):
"""Superuser with access to everything"""
user = baker.make(
"users.User",
email="super@example.com",
display_name="Super User",
last_login=timezone.now(),
is_staff=True,
is_superuser=True,
image=None,
)
filename = "super-user.png"
file = io.BytesIO()
file.name = filename
image = Image.new("RGBA", size=(100, 100), color=(155, 0, 0))
image.save(file, "png")
file.seek(0)
user.profile_image.save(filename, file)
user.set_password("password")
user.save()
return user
@pytest.fixture
def assert_messages():
def _assert_and_fetch(response, expected):
messages = [
(m.level_tag, m.message) for m in response.context.get("messages", [])
]
assert messages == expected
return _assert_and_fetch