feat: improve coverage

This commit is contained in:
2025-01-23 17:32:16 +01:00
parent 0cef264b40
commit 90bcfe298b
4 changed files with 66 additions and 57 deletions
+6 -44
View File
@@ -1,45 +1,7 @@
import random
import string
class Response:
def __init__(self, data, status_code, *args, **kwargs):
self.data = data
self.status_code = status_code
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)
def json(self):
return self.data