单元测试中的CELERY_ALWAYS_EAGER会导致DetachedInstanceError

时间:2015-06-26 13:09:05

标签: python unit-testing celery python-unittest

我在我的python应用程序中添加了一些芹菜任务,它们运行良好。我正在尝试修复我的芹菜测试套件。我将celery.conf.CELERY_ALWAYS_EAGER = True添加到我的测试套件中,以便它可以与同步执行的任务一起运行。

问题是随机测试(甚至不使用芹菜任务)显示错误DetachedInstanceError: Parent instance <MyModel at 0x1096ba690> is not bound to a Session; lazy load operation of attribute 'child' cannot proceed

删除celery.conf.CELERY_ALWAYS_EAGER = True修复了问题,但是芹菜任务被发送到队列但没有处理,除非我在终端中启动了一个工作人员。

1 个答案:

答案 0 :(得分:1)

看起来你可能正在序列化一些(懒惰地加载属性/属性)的东西(MyModel),其加载需要一些没有被序列化的东西。

你能尝试将你的任务简化为一个非常简单的功能,看看是否能解决这个问题吗?

相关问题