Add the Tasks model to manage tasks.
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-07-24 15:02:23 +03:00
parent de611a5a14
commit 4f648a1389
4 changed files with 37 additions and 1 deletions
+2
View File
@@ -34,4 +34,6 @@
Update the database to use Postgres.
** 0.3.9 <2023-07-24 Mon>
Add the CI/CD configuration.
** 0.3.10 <2023-07-24 Mon>
Add the Tasks model to manage tasks.
+5
View File
@@ -45,3 +45,8 @@ class Task(models.Model):
self.status = self.circular_next_status()
self.save()
class Tasks:
@staticmethod
def get_count_by_status(status: str):
return Task.objects.filter(status=status).count()
+1 -1
View File
@@ -1,5 +1,5 @@
from django.test import TestCase
from tasks.models import Task, Tasks
from tasks.models import Task
class TaskTestCase(TestCase):
def setUp(self):
+29
View File
@@ -0,0 +1,29 @@
from django.test import TestCase
from tasks.models import Task, Tasks
class TasksTestCase(TestCase):
todo_count = 2
doing_count = 3
done_count = 4
cancel_count = 1
def setUp(self):
names = [f"Test Task {i}" for i in range(10)]
description = ""
statuses = ["TODO"] * self.todo_count
statuses += ["DOING"] * self.doing_count
statuses += ["DONE"] * self.done_count
statuses += ["CANCELED"] * self.cancel_count
tasks = [
Task(name=name, description=description, status=status)
for name, status in zip(names, statuses)
]
Task.objects.bulk_create(tasks)
def test_done_count(self):
count = Tasks.get_count_by_status("DONE")
self.assertEqual(count, self.done_count)