feat: added lots of tests
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user