Skip to content

Commit

Permalink
test(core): ui permissions
Browse files Browse the repository at this point in the history
  • Loading branch information
jon-nfc committed Sep 13, 2024
1 parent 6cc992f commit 297e318
Showing 1 changed file with 187 additions and 0 deletions.
187 changes: 187 additions & 0 deletions app/core/tests/unit/ticket_category/test_ticket_category_permission.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
# from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AnonymousUser, User
from django.contrib.contenttypes.models import ContentType
from django.shortcuts import reverse
from django.test import TestCase, Client

import pytest
import unittest
import requests

from access.models import Organization, Team, TeamUsers, Permission

from app.tests.abstract.model_permissions import ModelPermissions

from core.models.ticket.ticket_category import TicketCategory


class TicketCategoryPermissions(TestCase, ModelPermissions):

model = TicketCategory

app_namespace = 'Settings'

url_name_view = '_ticket_category_view'

url_name_add = '_ticket_category_add'

url_name_change = '_ticket_category_change'

url_name_delete = '_ticket_category_delete'

url_delete_response = reverse('Settings:_ticket_categories')

@classmethod
def setUpTestData(self):
"""Setup Test
1. Create an organization for user and item
. create an organization that is different to item
2. Create a category
3. create teams with each permission: view, add, change, delete
4. create a user per team
"""

organization = Organization.objects.create(name='test_org')

self.organization = organization

different_organization = Organization.objects.create(name='test_different_organization')


self.item = self.model.objects.create(
organization=organization,
name = 'manufacturerone'
)


self.url_view_kwargs = {'pk': self.item.id}

# self.url_add_kwargs = {'pk': self.item.id}

self.add_data = {'name': 'manufacturer', 'organization': self.organization.id}

self.url_change_kwargs = {'pk': self.item.id}

self.change_data = {'name': 'manufacturer', 'organization': self.organization.id}

self.url_delete_kwargs = {'pk': self.item.id}

self.delete_data = {'name': 'manufacturer'}


view_permissions = Permission.objects.get(
codename = 'view_' + self.model._meta.model_name,
content_type = ContentType.objects.get(
app_label = self.model._meta.app_label,
model = self.model._meta.model_name,
)
)

view_team = Team.objects.create(
team_name = 'view_team',
organization = organization,
)

view_team.permissions.set([view_permissions])



add_permissions = Permission.objects.get(
codename = 'add_' + self.model._meta.model_name,
content_type = ContentType.objects.get(
app_label = self.model._meta.app_label,
model = self.model._meta.model_name,
)
)

add_team = Team.objects.create(
team_name = 'add_team',
organization = organization,
)

add_team.permissions.set([add_permissions])



change_permissions = Permission.objects.get(
codename = 'change_' + self.model._meta.model_name,
content_type = ContentType.objects.get(
app_label = self.model._meta.app_label,
model = self.model._meta.model_name,
)
)

change_team = Team.objects.create(
team_name = 'change_team',
organization = organization,
)

change_team.permissions.set([change_permissions])



delete_permissions = Permission.objects.get(
codename = 'delete_' + self.model._meta.model_name,
content_type = ContentType.objects.get(
app_label = self.model._meta.app_label,
model = self.model._meta.model_name,
)
)

delete_team = Team.objects.create(
team_name = 'delete_team',
organization = organization,
)

delete_team.permissions.set([delete_permissions])


self.no_permissions_user = User.objects.create_user(username="test_no_permissions", password="password")


self.view_user = User.objects.create_user(username="test_user_view", password="password")
teamuser = TeamUsers.objects.create(
team = view_team,
user = self.view_user
)

self.add_user = User.objects.create_user(username="test_user_add", password="password")
teamuser = TeamUsers.objects.create(
team = add_team,
user = self.add_user
)

self.change_user = User.objects.create_user(username="test_user_change", password="password")
teamuser = TeamUsers.objects.create(
team = change_team,
user = self.change_user
)

self.delete_user = User.objects.create_user(username="test_user_delete", password="password")
teamuser = TeamUsers.objects.create(
team = delete_team,
user = self.delete_user
)


self.different_organization_user = User.objects.create_user(username="test_different_organization_user", password="password")


different_organization_team = Team.objects.create(
team_name = 'different_organization_team',
organization = different_organization,
)

different_organization_team.permissions.set([
view_permissions,
add_permissions,
change_permissions,
delete_permissions,
])

TeamUsers.objects.create(
team = different_organization_team,
user = self.different_organization_user
)

0 comments on commit 297e318

Please sign in to comment.