partition tickets by event
This commit is contained in:
parent
d73bebd5de
commit
41b71bd51a
8 changed files with 85 additions and 20 deletions
|
@ -3,6 +3,7 @@ from datetime import datetime, timedelta
|
|||
from django.test import TestCase, Client
|
||||
|
||||
from authentication.models import ExtendedUser
|
||||
from inventory.models import Event
|
||||
from mail.models import Email, EmailAttachment
|
||||
from tickets.models import IssueThread, StateChange, Comment
|
||||
from django.contrib.auth.models import Permission
|
||||
|
@ -16,6 +17,7 @@ class IssueApiTest(TestCase):
|
|||
self.user = ExtendedUser.objects.create_user('testuser', 'test', 'test')
|
||||
self.user.user_permissions.add(*Permission.objects.all())
|
||||
self.user.save()
|
||||
self.event = Event.objects.create(slug='evt')
|
||||
self.token = AuthToken.objects.create(user=self.user)
|
||||
self.client = Client(headers={'Authorization': 'Token ' + self.token[1]})
|
||||
|
||||
|
@ -28,6 +30,7 @@ class IssueApiTest(TestCase):
|
|||
now = datetime.now()
|
||||
issue = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
mail1 = Email.objects.create(
|
||||
subject='test',
|
||||
|
@ -61,6 +64,7 @@ class IssueApiTest(TestCase):
|
|||
self.assertEqual(response.json()[0]['id'], issue.id)
|
||||
self.assertEqual(response.json()[0]['name'], "test issue")
|
||||
self.assertEqual(response.json()[0]['state'], "pending_new")
|
||||
self.assertEqual(response.json()[0]['event'], "evt")
|
||||
self.assertEqual(response.json()[0]['assigned_to'], None)
|
||||
self.assertEqual(response.json()[0]['uuid'], issue.uuid)
|
||||
self.assertEqual(response.json()[0]['last_activity'], comment.timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'))
|
||||
|
@ -93,12 +97,15 @@ class IssueApiTest(TestCase):
|
|||
now = datetime.now()
|
||||
issue1 = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
issue2 = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
issue3 = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
mail1 = Email.objects.create(
|
||||
subject='test',
|
||||
|
@ -118,8 +125,11 @@ class IssueApiTest(TestCase):
|
|||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(3, len(response.json()))
|
||||
self.assertEqual(issue1.id, response.json()[0]['id'])
|
||||
self.assertEqual("evt", response.json()[0]['event'])
|
||||
self.assertEqual(issue2.id, response.json()[1]['id'])
|
||||
self.assertEqual("evt", response.json()[1]['event'])
|
||||
self.assertEqual(issue3.id, response.json()[2]['id'])
|
||||
self.assertEqual("evt", response.json()[2]['event'])
|
||||
self.assertEqual(issue1.state_changes.first().timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
|
||||
response.json()[0]['last_activity'])
|
||||
self.assertEqual(mail1.timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
|
||||
|
@ -153,6 +163,7 @@ class IssueApiTest(TestCase):
|
|||
now = datetime.now()
|
||||
issue = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
mail1 = Email.objects.create(
|
||||
subject='test',
|
||||
|
@ -189,6 +200,7 @@ class IssueApiTest(TestCase):
|
|||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(1, len(response.json()))
|
||||
self.assertEqual(issue.id, response.json()[0]['id'])
|
||||
self.assertEqual("evt", response.json()[0]['event'])
|
||||
self.assertEqual('pending_new', response.json()[0]['state'])
|
||||
self.assertEqual('test issue', response.json()[0]['name'])
|
||||
self.assertEqual(None, response.json()[0]['assigned_to'])
|
||||
|
@ -230,13 +242,14 @@ class IssueApiTest(TestCase):
|
|||
self.assertEqual(file2.hash, response.json()[0]['timeline'][1]['attachments'][1]['hash'])
|
||||
|
||||
def test_manual_creation(self):
|
||||
response = self.client.post('/api/2/tickets/manual/',
|
||||
response = self.client.post('/api/2/evt/tickets/manual/',
|
||||
{'name': 'test issue', 'sender': 'test', 'recipient': 'test', 'body': 'test'},
|
||||
content_type='application/json')
|
||||
self.assertEqual(response.status_code, 201)
|
||||
self.assertEqual(response.json()['state'], 'pending_new')
|
||||
self.assertEqual(response.json()['name'], 'test issue')
|
||||
self.assertEqual(response.json()['assigned_to'], None)
|
||||
self.assertEqual("evt", response.json()['event'])
|
||||
timeline = response.json()['timeline']
|
||||
self.assertEqual(len(timeline), 2)
|
||||
self.assertEqual(timeline[0]['type'], 'state')
|
||||
|
@ -247,9 +260,35 @@ class IssueApiTest(TestCase):
|
|||
self.assertEqual(timeline[1]['subject'], 'test issue')
|
||||
self.assertEqual(timeline[1]['body'], 'test')
|
||||
|
||||
def test_manual_creation_none(self):
|
||||
response = self.client.post('/api/2/none/tickets/manual/',
|
||||
{'name': 'test issue', 'sender': 'test', 'recipient': 'test', 'body': 'test'},
|
||||
content_type='application/json')
|
||||
self.assertEqual(response.status_code, 201)
|
||||
self.assertEqual(response.json()['state'], 'pending_new')
|
||||
self.assertEqual(response.json()['name'], 'test issue')
|
||||
self.assertEqual(response.json()['assigned_to'], None)
|
||||
self.assertEqual(None, response.json()['event'])
|
||||
timeline = response.json()['timeline']
|
||||
self.assertEqual(len(timeline), 2)
|
||||
self.assertEqual(timeline[0]['type'], 'state')
|
||||
self.assertEqual(timeline[0]['state'], 'pending_new')
|
||||
self.assertEqual(timeline[1]['type'], 'mail')
|
||||
self.assertEqual(timeline[1]['sender'], 'test')
|
||||
self.assertEqual(timeline[1]['recipient'], 'test')
|
||||
self.assertEqual(timeline[1]['subject'], 'test issue')
|
||||
self.assertEqual(timeline[1]['body'], 'test')
|
||||
|
||||
def test_manual_creation_invalid(self):
|
||||
response = self.client.post('/api/2/foobar/tickets/manual/',
|
||||
{'name': 'test issue', 'sender': 'test', 'recipient': 'test', 'body': 'test'},
|
||||
content_type='application/json')
|
||||
self.assertEqual(response.status_code, 400)
|
||||
|
||||
def test_post_comment_altenative(self):
|
||||
issue = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
response = self.client.post(f'/api/2/tickets/{issue.id}/comment/', {'comment': 'test'})
|
||||
self.assertEqual(response.status_code, 201)
|
||||
|
@ -260,6 +299,7 @@ class IssueApiTest(TestCase):
|
|||
def test_post_alt_comment_empty(self):
|
||||
issue = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
response = self.client.post(f'/api/2/tickets/{issue.id}/comment/', {'comment': ''})
|
||||
self.assertEqual(response.status_code, 400)
|
||||
|
@ -267,6 +307,7 @@ class IssueApiTest(TestCase):
|
|||
def test_state_change(self):
|
||||
issue = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
response = self.client.patch(f'/api/2/tickets/{issue.id}/', {'state': 'pending_open'},
|
||||
content_type='application/json')
|
||||
|
@ -284,6 +325,7 @@ class IssueApiTest(TestCase):
|
|||
def test_state_change_invalid_state(self):
|
||||
issue = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
response = self.client.patch(f'/api/2/tickets/{issue.id}/', {'state': 'invalid'},
|
||||
content_type='application/json')
|
||||
|
@ -292,12 +334,14 @@ class IssueApiTest(TestCase):
|
|||
def test_assign_user(self):
|
||||
issue = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
event=self.event,
|
||||
)
|
||||
response = self.client.patch(f'/api/2/tickets/{issue.id}/', {'assigned_to': self.user.username},
|
||||
content_type='application/json')
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual('pending_new', response.json()['state'])
|
||||
self.assertEqual('test issue', response.json()['name'])
|
||||
self.assertEqual("evt", response.json()['event'])
|
||||
self.assertEqual(self.user.username, response.json()['assigned_to'])
|
||||
timeline = response.json()['timeline']
|
||||
self.assertEqual(2, len(timeline))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue