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

main
KKlochko 2 years ago
parent de611a5a14
commit 4f648a1389

@ -34,4 +34,6 @@
Update the database to use Postgres. Update the database to use Postgres.
** 0.3.9 <2023-07-24 Mon> ** 0.3.9 <2023-07-24 Mon>
Add the CI/CD configuration. Add the CI/CD configuration.
** 0.3.10 <2023-07-24 Mon>
Add the Tasks model to manage tasks.

@ -45,3 +45,8 @@ class Task(models.Model):
self.status = self.circular_next_status() self.status = self.circular_next_status()
self.save() self.save()
class Tasks:
@staticmethod
def get_count_by_status(status: str):
return Task.objects.filter(status=status).count()

@ -1,5 +1,5 @@
from django.test import TestCase from django.test import TestCase
from tasks.models import Task, Tasks from tasks.models import Task
class TaskTestCase(TestCase): class TaskTestCase(TestCase):
def setUp(self): def setUp(self):

@ -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)
Loading…
Cancel
Save