-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test(assistance): Request Ticket API field checks
- Loading branch information
Showing
1 changed file
with
146 additions
and
0 deletions.
There are no files selected for viewing
146 changes: 146 additions & 0 deletions
146
app/assistance/tests/unit/ticket_request/test_ticket_request_api_v2.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |