make the 'last_activity' field in /tickets show the actual last activity by making it a virtual field
This commit is contained in:
parent
9aeb6a319f
commit
1804939407
7 changed files with 135 additions and 6 deletions
|
@ -59,7 +59,7 @@ class IssueApiTest(TestCase):
|
|||
self.assertEqual(response.json()[0]['name'], "test issue")
|
||||
self.assertEqual(response.json()[0]['state'], "pending_new")
|
||||
self.assertEqual(response.json()[0]['assigned_to'], None)
|
||||
self.assertEqual(response.json()[0]['last_activity'], issue.last_activity.strftime('%Y-%m-%dT%H:%M:%S.%fZ'))
|
||||
self.assertEqual(response.json()[0]['last_activity'], comment.timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'))
|
||||
self.assertEqual(len(response.json()[0]['timeline']), 4)
|
||||
self.assertEqual(response.json()[0]['timeline'][0]['type'], 'state')
|
||||
self.assertEqual(response.json()[0]['timeline'][1]['type'], 'mail')
|
||||
|
@ -85,6 +85,65 @@ class IssueApiTest(TestCase):
|
|||
self.assertEqual(response.json()[0]['timeline'][3]['timestamp'],
|
||||
comment.timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'))
|
||||
|
||||
def test_issues_incomplete_timeline(self):
|
||||
now = datetime.now()
|
||||
issue1 = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
)
|
||||
issue2 = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
)
|
||||
issue3 = IssueThread.objects.create(
|
||||
name="test issue",
|
||||
)
|
||||
mail1 = Email.objects.create(
|
||||
subject='test',
|
||||
body='test',
|
||||
sender='test',
|
||||
recipient='test',
|
||||
issue_thread=issue2,
|
||||
timestamp=now + timedelta(seconds=2),
|
||||
)
|
||||
comment = Comment.objects.create(
|
||||
issue_thread=issue3,
|
||||
comment="test",
|
||||
timestamp=now + timedelta(seconds=3),
|
||||
)
|
||||
|
||||
response = self.client.get('/api/2/tickets/')
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(3, len(response.json()))
|
||||
self.assertEqual(issue1.id, response.json()[0]['id'])
|
||||
self.assertEqual(issue2.id, response.json()[1]['id'])
|
||||
self.assertEqual(issue3.id, response.json()[2]['id'])
|
||||
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'),
|
||||
response.json()[1]['last_activity'])
|
||||
self.assertEqual(comment.timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
|
||||
response.json()[2]['last_activity'])
|
||||
self.assertEqual(1, len(response.json()[0]['timeline']))
|
||||
self.assertEqual(2, len(response.json()[1]['timeline']))
|
||||
self.assertEqual(2, len(response.json()[2]['timeline']))
|
||||
self.assertEqual('state', response.json()[0]['timeline'][0]['type'])
|
||||
self.assertEqual('state', response.json()[1]['timeline'][0]['type'])
|
||||
self.assertEqual('mail', response.json()[1]['timeline'][1]['type'])
|
||||
self.assertEqual('state', response.json()[2]['timeline'][0]['type'])
|
||||
self.assertEqual('comment', response.json()[2]['timeline'][1]['type'])
|
||||
self.assertEqual('pending_new', response.json()[0]['timeline'][0]['state'])
|
||||
self.assertEqual('pending_new', response.json()[1]['timeline'][0]['state'])
|
||||
self.assertEqual('test', response.json()[1]['timeline'][1]['sender'])
|
||||
self.assertEqual('test', response.json()[1]['timeline'][1]['recipient'])
|
||||
self.assertEqual('test', response.json()[1]['timeline'][1]['subject'])
|
||||
self.assertEqual('test', response.json()[1]['timeline'][1]['body'])
|
||||
self.assertEqual(mail1.timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
|
||||
response.json()[1]['timeline'][1]['timestamp'])
|
||||
self.assertEqual('pending_new', response.json()[2]['timeline'][0]['state'])
|
||||
self.assertEqual('test', response.json()[2]['timeline'][1]['comment'])
|
||||
self.assertEqual(comment.timestamp.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
|
||||
response.json()[2]['timeline'][1]['timestamp'])
|
||||
|
||||
|
||||
def test_manual_creation(self):
|
||||
response = self.client.post('/api/2/tickets/manual/',
|
||||
{'name': 'test issue', 'sender': 'test', 'recipient': 'test', 'body': 'test'},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue