Django-Q设置Q_CLUSTER'sync':True不适用于单元测试

时间:2019-08-28 08:57:01

标签: django django-rest-framework django-q

我正在使用Django-Q与Django 2.2,DRF 3.9和Postgres 10.9发送异步电子邮件

除单元测试外,设置工作正常。 我指的是以下问题,这与我面临的问题完全相同: https://github.com/Koed00/django-q/issues/266

根据链接,一种解决方案是将同步设置更改为“ True”以进行测试。

这是我在tests.py中拥有的东西:

from django.conf import settings
settings.Q_CLUSTER['sync'] = True


class UserAPITestCase(APITransactionTestCase):
    print(settings.Q_CLUSTER)

'print'显示已添加'sync':True,但async_task仍以异步模式运行。

但是,如果我直接将同步设置添加到设置文件中,则一切都会按预期进行,并且async_task会同步运行。

如果稍后更新,django-q不会采用该设置。我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试做

from django.test import override_settings
from django.conf import settings


@override_settings(Q_CLUSTER={**settings.Q_CLUSTER, 'sync': True})
class UserAPITestCase(APITransactionTestCase):
    pass