feat: added lots of tests

This commit is contained in:
2024-05-13 12:35:58 +02:00
parent 05caeb9607
commit 9d83c3b30f
8 changed files with 545 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
import string
import random
from django.contrib.auth.models import User, Permission
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):
response = self.client.post(
"/api/v1/auth/login/",
{
"username": self.user.username,
"password": self.password,
},
)
jwt_token = response.data.get("access")
self.client.credentials(HTTP_AUTHORIZATION=f"Bearer {jwt_token}")
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)