python - 用于在 Django 中测试配置的 Celery
问题描述
我有一个文件 celery_test.py,它应该在 Django 中加载测试(config.test)的配置设置,但它加载了 Development(config.development)的配置
from __future__ import absolute_import
import os
from django.conf import settings
from celery import Celery
os.environ.setdefault(
"DJANGO_SETTINGS_MODULE", "config.testing"
)
test_app = Celery('test')
test_app.config_from_object('django.conf:settings')
test_app.autodiscover_tasks()
print("Testing celery")
print(settings)
@test_app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
当我打印设置时,它打印config.development
而不是config.testing
. 谁能帮我在这里如何加载config.testing
?
解决方案
假设您正在使用pytest
,您可以将其放入您的pytest.ini
文件中:
[pytest]
DJANGO_SETTINGS_MODULE = celery_test.py
或使用:
DJANGO_SETTINGS_MODULE=celery_test.py pytest
对于单线。
推荐阅读
- tsql - 需要更新 SQL Server 2016 中的完整表
- python - 在 Google 的 App Engine 中加密和访问 Google 应用程序凭据的工作流程是什么?
- ruby-on-rails - 将 hack 转换为适当的 Rails 迁移
- javascript - 想要创建启用垂直滚动的侧边菜单,但子菜单应显示在侧边菜单区域/容器之外
- python - 如何从成员中删除角色?
- php - WooCommerce:在后元数据数组中获取特定值
- c++ - std::set as a class member can't use function pointer as key_comp
- elasticsearch - 使用稍后可能出现的批处理数据来丰富 ElasticSearch 中近乎实时的数据的最佳方法是什么?
- ssis - SSIS 脚本任务中的 Salesforce Bulk API 2.0
- python - Python 引用的函数运行整个模块