pytest celery:任务调用后清理数据库

时间:2018-06-22 11:03:44

标签: python django postgresql celery pytest

我想在Django中使用pytest测试celery任务。

如果我在测试函数中使用celery_worker参数,则会收到错误消息:

  

{OperationalError}数据库表已锁定(sqllite)。

如果我在测试之前运行worker,并且不使用celery_worker参数,则任务会成功运行,但是由于所有更新都链接到原始数据库,因此我无法在测试数据库(pytestmark = pytest.mark.django_db)中找到更改。

我尝试在Docker(postgresql数据库)中运行测试,但是使用参数celery_worker时出现错误:

  

psycopg2.InterfaceError:连接已关闭

1 个答案:

答案 0 :(得分:0)

需要与pytest标记celery_worker结合使用@pytest.mark.django_db(transaction=True)参数。