【问题标题】:Pytest celery: cleaned up database after task callPytest celery:任务调用后清理数据库
【发布时间】:2018-12-01 20:21:00
【问题描述】:

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

如果我在测试函数中使用celery_worker 参数,则会出现错误:

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

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

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

psycopg2.InterfaceError: 连接已关闭

【问题讨论】:

    标签: python django postgresql celery pytest


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多