This commit is contained in:
25
backend/modules/task_management/tests/test_tasks.py
Normal file
25
backend/modules/task_management/tests/test_tasks.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth import get_user_model
|
||||
from modules.task_management.tasks import create_task_from_invoice
|
||||
from modules.task_management.models import Task
|
||||
|
||||
|
||||
class TaskCeleryTests(TestCase):
|
||||
def setUp(self):
|
||||
User = get_user_model()
|
||||
# Create an admin user to be assigned the task
|
||||
self.admin = User.objects.create_user(username="admin", email="admin@example.test", password="pass", is_staff=True)
|
||||
|
||||
def test_create_task_from_invoice_creates_task_for_large_amount(self):
|
||||
invoice_data = {"amount": 1500, "invoice_number": "INV-100"}
|
||||
# run the task function synchronously via .run (no bind)
|
||||
create_task_from_invoice.run(invoice_data)
|
||||
task = Task.objects.filter(title__icontains="INV-100").first()
|
||||
assert task is not None
|
||||
assert task.assigned_to == self.admin
|
||||
|
||||
def test_create_task_from_invoice_does_not_create_for_small_amount(self):
|
||||
invoice_data = {"amount": 100, "invoice_number": "INV-101"}
|
||||
create_task_from_invoice.run(invoice_data)
|
||||
task = Task.objects.filter(title__icontains="INV-101").first()
|
||||
assert task is None
|
||||
Reference in New Issue
Block a user