Skip to content

Commit

Permalink
test(assistance): Request Ticket API field checks
Browse files Browse the repository at this point in the history
  • Loading branch information
jon-nfc committed Oct 27, 2024
1 parent 0590658 commit 5234faa
Showing 1 changed file with 146 additions and 0 deletions.
146 changes: 146 additions & 0 deletions app/assistance/tests/unit/ticket_request/test_ticket_request_api_v2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
from django.shortcuts import reverse
from django.test import Client, TestCase

from rest_framework.relations import Hyperlink

from core.tests.abstract.test_ticket_api_v2 import TicketAPI

from core.models.ticket.ticket import Ticket



class RequestTicketAPI(
TicketAPI,
TestCase
):

model = Ticket

ticket_type = 'request'

@classmethod
def setUpTestData(self):
"""Setup Test
1. Create an organization for user and item
2. Create an item
"""

super().setUpTestData()


self.item = self.model.objects.create(

# All Tickets
organization=self.organization,
title = 'A ' + self.ticket_type + ' ticket',
description = 'the ticket body',
opened_by = self.view_user,
status = int(Ticket.TicketStatus.All.CLOSED.value),
project = self.project,
milestone = self.project_milestone,
external_ref = 1,
external_system = Ticket.Ticket_ExternalSystem.CUSTOM_1,
date_closed = '2024-01-01T01:02:03Z',

# ITIL Tickets
category = self.ticket_category,

# Specific to ticket
ticket_type = int(Ticket.TicketType.REQUEST.value),
)

self.item.assigned_teams.set([ self.view_team ])

self.item.assigned_users.set([ self.view_user ])

self.item.subscribed_teams.set([ self.view_team ])

self.item.subscribed_users.set([ self.view_user ])


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

client = Client()
url = reverse('v2:_api_v2_ticket_' + self.ticket_type + '-detail', kwargs=self.url_view_kwargs)


client.force_login(self.view_user)
response = client.get(url)

self.api_data = response.data



def test_api_field_exists_impact(self):
""" Test for existance of API Field
impact field must exist
"""

assert 'impact' in self.api_data


def test_api_field_type_impact(self):
""" Test for type for API Field
impact field must be int
"""

assert type(self.api_data['impact']) is int



def test_api_field_exists_category(self):
""" Test for existance of API Field
category field must exist
"""

assert 'category' in self.api_data


def test_api_field_type_category(self):
""" Test for type for API Field
category field must be dict
"""

assert type(self.api_data['category']) is dict


def test_api_field_exists_category_display_name(self):
""" Test for existance of API Field
category.display_name field must exist
"""

assert 'display_name' in self.api_data['category']


def test_api_field_type_category_display_name(self):
""" Test for type for API Field
category.display_name field must be str
"""

assert type(self.api_data['category']['display_name']) is str


def test_api_field_exists_category_url(self):
""" Test for existance of API Field
category.url field must exist
"""

assert 'url' in self.api_data['category']


def test_api_field_type_category_url(self):
""" Test for type for API Field
category.url field must be Hyperlink
"""

assert type(self.api_data['category']['url']) is Hyperlink

0 comments on commit 5234faa

Please sign in to comment.