【问题标题】:Run django-celery tests on Django 1.8在 Django 1.8 上运行 django-celery 测试
【发布时间】:2016-02-09 19:08:55
【问题描述】:

最终,我想让测试通过 Django 1.9。 django-celery 当前适用于 Django

我在一个测试项目中克隆了https://github.com/celery/django-celery 并安装了需求。对于 Django 1.7,测试通过了。对于 Django 1.8,我多次遇到相同的错误,但它应该可以工作......

请参阅https://github.com/celery/django-celery/blob/master/tox.ini 包括 Django 1.8:

...
1.8: Django>=1.8.0,<1.9.0

对于 Django 1.7:

pip install Django==1.7
./django-celery/tests/manage.py test djcelery.tests
...
Ran 64 tests in 0.319s
OK

对于 Django 1.8:

pip install Django==1.8
./django-celery/tests/manage.py test djcelery.tests

...
======================================================================
ERROR: test_all_as_schedule (djcelery.tests.test_schedulers.test_DatabaseScheduler)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/francois/web/test_project/django-celery/djcelery/tests/test_schedulers.py", line 110, in setUp
    m1 = create_model_interval(schedule(timedelta(seconds=10)))
  File "/Users/francois/web/test_project/django-celery/djcelery/tests/test_schedulers.py", line 20, in create_model_interval
    **kwargs)
  File "/Users/francois/web/test_project/django-celery/djcelery/tests/test_schedulers.py", line 40, in create_model
    return Model(**dict(entry, **kwargs))
  File "/Users/francois/Envs/test_project/lib/python2.7/site-packages/django/db/models/base.py", line 468, in __init__
    setattr(self, field.name, rel_obj)
  File "/Users/francois/Envs/test_project/lib/python2.7/site-packages/django/db/models/fields/related.py", line 668, in __set__
    (value, self.field.rel.to._meta.object_name)
ValueError: Cannot assign "<IntervalSchedule: every 10.0 seconds>": "IntervalSchedule" instance isn't saved in the database.


 ...
 Ran 64 tests in 0.150s

 FAILED (errors=15)

我错过了什么?

【问题讨论】:

  • 嗨弗朗索瓦,django-celery 项目已被弃用(Django 支持现在直接包含在celery 包中)。您想要验证 Django 1.9 支持是否有特定原因?
  • 是的,我正在使用django-celery 处理一个相当大的老项目。我想利用一些 Django 1.9 的特性。听起来我最好删除它而不是升级它。

标签: testing django-celery django-1.8


【解决方案1】:

Django 1.8 的 API 更改阻止了将未保存的模型实例添加为 ForeignKey:https://docs.djangoproject.com/en/1.8/releases/1.8/#assigning-unsaved-objects-to-relations-raises-an-error

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-28
    • 2023-04-09
    • 2014-07-07
    • 2013-02-25
    • 1970-01-01
    • 2018-12-31
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多