Files
shoppy/config/tests/mixins.py
T
2024-11-26 13:20:54 +01:00

46 lines
1.4 KiB
Python

import random
import string
from django.contrib.auth.models import Permission, User
class TestUserAuthenticationMixin:
model_name = ""
def create_user(self):
self.password = "".join(
[random.choice(string.ascii_letters) for _ in range(16)]
)
self.user = User.objects.create(
username="vader",
email="darth@vader.com",
is_staff=True,
is_active=True,
)
self.user.set_password(self.password)
self.user.save()
self.setup_user_permissions()
def login(self):
self.client.force_login(self.user)
def setup_user_permissions(self):
self.create_permission = Permission.objects.get(
codename=f"add_{self.model_name}"
)
self.delete_permission = Permission.objects.get(
codename=f"delete_{self.model_name}"
)
self.list_permission = Permission.objects.get(
codename=f"view_{self.model_name}"
)
self.update_permission = Permission.objects.get(
codename=f"change_{self.model_name}"
)
# Grant access and permissions
self.user.user_permissions.add(self.create_permission)
self.user.user_permissions.add(self.delete_permission)
self.user.user_permissions.add(self.list_permission)
self.user.user_permissions.add(self.update_permission)