Unit test for Celery task


#1

ด้วยความที่ celery task มันต้องใช้กับ broker ก็เลยต้อง override ให้มันเรียกทันที ไม่ใช้ broker ด้วย


from django.test import TestCase, override_settings

from .foo import foo_celery_task

class MyTest(TestCase):

    @override_settings(
        task_eager_propagates=True,
        task_always_eager=True,
        broker_url='memory://',
        backend='memory'
    )
    def test_foo(self):
        self.assertTrue(foo_celery_task.delay())

ก็น่าจะทำให้การทดสอบเป็นไปอย่างราบรื่นขึ้น

celery 4.0
http://docs.celeryproject.org/en/latest/whatsnew-4.0.html#lowercase-setting-names