diff --git a/django_q/tests/tasks.py b/django_q/tests/tasks.py index dc6d500..9e8a298 100644 --- a/django_q/tests/tasks.py +++ b/django_q/tests/tasks.py @@ -1,6 +1,10 @@ from time import sleep +class TaskError(Exception): + pass + + def countdown(n): while n > 0: n -= 1 @@ -44,3 +48,7 @@ def hello(): def result(obj): print(f"RESULT HOOK {obj.name} : {obj.result()}") + + +def raise_exception(): + raise TaskError("this is an exception!") diff --git a/django_q/tests/test_cluster.py b/django_q/tests/test_cluster.py index f3905f9..c39b717 100644 --- a/django_q/tests/test_cluster.py +++ b/django_q/tests/test_cluster.py @@ -18,7 +18,7 @@ from django_q.models import Task, Success from django_q.conf import Conf from django_q.status import Stat from django_q.brokers import get_broker, Broker -from django_q.tests.tasks import multiply +from django_q.tests.tasks import multiply, TaskError from django_q.queues import Queue @@ -45,6 +45,11 @@ def test_sync(broker): task = async_task('django_q.tests.tasks.count_letters', DEFAULT_WORDLIST, broker=broker, sync=True) assert result(task) == 1506 +@pytest.mark.django_db +def test_sync_raise_exception(broker): + with pytest.raises(TaskError): + async_task('django_q.tests.tasks.raise_exception', broker=broker, sync=True) + @pytest.mark.django_db def test_cluster_initial(broker):