  Unit Testing  Testing with Django  The first problem you’ll
run in to when trying to write a test that runs a task is that
Django’s test runner doesn’t use the same database as your
celery daemon is using. If you’re using the database backend,
this means that your tombstones won’t show up in your test
database and you won’t be able to get the return value or check
the status of your tasks.  There are two ways to get around
this. You can either take advantage of CELERY_ALWAYS_EAGER =
True to skip the daemon, or you can avoid testing anything that
needs to check the status or result of a task.  Using a custom
test runner to test with celery  If you’re going the
CELERY_ALWAYS_EAGER route, which is probably better than just
never testing some parts of your app, a custom Django test
runner does the trick. Celery provides a simple test runner, but
it’s easy enough to roll your own if you have other things that
need to be done.  For this example, we’ll use the
djcelery.contrib.test_runner to test the add task from