Add the tests for circular next methods.
This commit is contained in:
@@ -27,4 +27,5 @@
|
|||||||
Update the style of buttons.
|
Update the style of buttons.
|
||||||
** 0.3.6 <2023-07-23 Sun>
|
** 0.3.6 <2023-07-23 Sun>
|
||||||
Add the circular next methods for Task.
|
Add the circular next methods for Task.
|
||||||
|
Add the tests for circular next methods.
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
from tasks.models import Task, Tasks
|
||||||
|
|
||||||
|
class TaskTestCase(TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
statuses = ["TODO", "DOING", "DONE", "CANCELED"]
|
||||||
|
names = [f"Test Task {i}" for i in statuses]
|
||||||
|
description = ""
|
||||||
|
|
||||||
|
tasks = [
|
||||||
|
Task(name=name, description=description, status=status)
|
||||||
|
for name, status in zip(names, statuses)
|
||||||
|
]
|
||||||
|
|
||||||
|
Task.objects.bulk_create(tasks)
|
||||||
|
|
||||||
|
def test__get_status_index_with_existing(self):
|
||||||
|
task = Task.objects.filter(status="DONE").first()
|
||||||
|
index = task._get_status_index()
|
||||||
|
self.assertEqual(index, 2)
|
||||||
|
|
||||||
|
def test_circular_next_status_index_for_todo(self):
|
||||||
|
task = Task.objects.filter(status="TODO").first()
|
||||||
|
index = task.circular_next_status_index()
|
||||||
|
self.assertEqual(index, 1)
|
||||||
|
|
||||||
|
def test_circular_next_status_index_for_canceled(self):
|
||||||
|
task = Task.objects.filter(status="CANCELED").first()
|
||||||
|
next_index = task.circular_next_status_index()
|
||||||
|
self.assertEqual(next_index, 0)
|
||||||
|
|
||||||
|
def test_circular_next_status_for_todo(self):
|
||||||
|
task = Task.objects.filter(status="TODO").first()
|
||||||
|
next_status = task.circular_next_status()
|
||||||
|
self.assertEqual(next_status, "DOING")
|
||||||
|
|
||||||
|
def test_circular_next_status_for_canceled(self):
|
||||||
|
task = Task.objects.filter(status="CANCELED").first()
|
||||||
|
next_status = task.circular_next_status()
|
||||||
|
self.assertEqual(next_status, "TODO")
|
||||||
|
|
||||||
|
def test_set_circular_next_status_for_todo(self):
|
||||||
|
task = Task.objects.filter(status="TODO").first()
|
||||||
|
task.set_circular_next_status()
|
||||||
|
task.refresh_from_db()
|
||||||
|
self.assertEqual(task.status, "DOING")
|
||||||
|
|
||||||
|
def test_set_circular_next_status_for_canceled(self):
|
||||||
|
task = Task.objects.filter(status="CANCELED").first()
|
||||||
|
task.set_circular_next_status()
|
||||||
|
task.refresh_from_db()
|
||||||
|
self.assertEqual(task.status, "TODO")
|
||||||
|
|
||||||
Reference in New Issue
Block a user