Skip to content

Commit

Permalink
added tests for scantask model
Browse files Browse the repository at this point in the history
  • Loading branch information
abaiken committed Feb 1, 2018
1 parent b0da763 commit 0db8897
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 1 deletion.
1 change: 1 addition & 0 deletions quipucords/api/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
# scan task messages
PLURAL_SCAN_TASKS_MSG = 'Scan Tasks'
ST_STATUS_MSG_RUNNING = 'Task is running.'
ST_STATUS_MSG_RESTARTED = 'Task was restarted.'
ST_STATUS_MSG_PENDING = 'Task is pending.'
ST_STATUS_MSG_PAUSED = 'Task is paused.'
ST_STATUS_MSG_CANCELED = 'Task is canceled.'
Expand Down
2 changes: 1 addition & 1 deletion quipucords/api/scantasks/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def start(self):
def restart(self):
"""Start a task."""
self.status = ScanTask.PENDING
self.status_message = 'Task was restarted'
self.status_message = _(messages.ST_STATUS_MSG_RESTARTED)
self.save()

def pause(self):
Expand Down
87 changes: 87 additions & 0 deletions quipucords/api/scantasks/tests_scantask.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#
"""Test the API application."""

from datetime import datetime
from django.test import TestCase
import api.messages as messages
from api.models import Credential, Source, ScanTask
Expand Down Expand Up @@ -56,3 +57,89 @@ def test_successful_create(self):
'status': 'pending',
'status_message': messages.ST_STATUS_MSG_PENDING},
json_task)

def test_successful_start(self):
"""Create a scan task and start it."""
task = ScanTask.objects.create(
source=self.source,
scan_type=ScanTask.SCAN_TYPE_CONNECT,
status=ScanTask.PENDING)
start_time = datetime.utcnow()
task.start()
task.save()
self.assertEqual(messages.ST_STATUS_MSG_RUNNING,
task.status_message)
self.assertEqual(task.status, ScanTask.RUNNING)
self.assertEqual(start_time.replace(microsecond=0),
task.start_time.replace(microsecond=0))

def test_successful_restart(self):
"""Create a scan task and restart it."""
task = ScanTask.objects.create(
source=self.source,
scan_type=ScanTask.SCAN_TYPE_CONNECT,
status=ScanTask.PENDING)
task.restart()
task.save()
self.assertEqual(messages.ST_STATUS_MSG_RESTARTED,
task.status_message)
self.assertEqual(task.status, ScanTask.PENDING)

def test_successful_pause(self):
"""Create a scan task and pause it."""
task = ScanTask.objects.create(
source=self.source,
scan_type=ScanTask.SCAN_TYPE_CONNECT,
status=ScanTask.PENDING)
task.pause()
task.save()
self.assertEqual(messages.ST_STATUS_MSG_PAUSED,
task.status_message)
self.assertEqual(task.status, ScanTask.PAUSED)

def test_successful_cancel(self):
"""Create a scan task and cancel it."""
task = ScanTask.objects.create(
source=self.source,
scan_type=ScanTask.SCAN_TYPE_CONNECT,
status=ScanTask.PENDING)
end_time = datetime.utcnow()
task.cancel()
task.save()
self.assertEqual(messages.ST_STATUS_MSG_CANCELED,
task.status_message)
self.assertEqual(task.status, ScanTask.CANCELED)
self.assertEqual(end_time.replace(microsecond=0),
task.end_time.replace(microsecond=0))

def test_successful_complete(self):
"""Create a scan task and complete it."""
task = ScanTask.objects.create(
source=self.source,
scan_type=ScanTask.SCAN_TYPE_CONNECT,
status=ScanTask.PENDING)
end_time = datetime.utcnow()
task.complete()
task.save()
self.assertEqual(messages.ST_STATUS_MSG_COMPLETED,
task.status_message)
self.assertEqual(task.status, ScanTask.COMPLETED)
self.assertEqual(end_time.replace(microsecond=0),
task.end_time.replace(microsecond=0))

def test_scantask_fail(self):
"""Create a scan task and fail it."""
task = ScanTask.objects.create(
source=self.source,
scan_type=ScanTask.SCAN_TYPE_CONNECT,
status=ScanTask.PENDING)
# pylint: disable=invalid-name
MSG = 'Test Fail.'
end_time = datetime.utcnow()
task.fail(MSG)
task.save()
self.assertEqual(MSG,
task.status_message)
self.assertEqual(task.status, ScanTask.FAILED)
self.assertEqual(end_time.replace(microsecond=0),
task.end_time.replace(microsecond=0))

0 comments on commit 0db8897

Please sign in to comment.