有没有办法检查django版本的功能弃用?

jet*_*har 8 python django deprecation-warning

由于某些功能得到使用Django的新版本过时了,有没有办法来检查是对现有项目的代码表示在GitHub上.

一个工具可以做到这一点.有没有办法通过测试用例检测到它.

是否有可能对python版本做同样的事情.

我猜一种方法可能是使用tox运行特定版本的django/python然后检查错误.

我只是在寻找更优雅或更直接的东西,比如说"注意这个功能已被弃用",这可以用像Java这样的强类型语言来完成.

如果有人想要构建这样一个工具,那么如果可能的话,可能是什么的起点.

Ane*_*pic 2

我认为这必须出现在您项目的单元测试中。

如果您的测试执行的代码将在 Django 的未来版本中弃用,您将收到警告。如果您跳转到该功能已被弃用的 Django 版本,您当然会遇到异常和失败的测试。

您可以告诉 Python 解释器将警告升级为异常,这会导致测试失败。

这里的说明是将相同的技巧应用于流行的nosetests测试框架。

如果您已经(从 Django 文档)知道您正在编写的某些代码需要根据其运行的 Django 版本进行更改(例如您正在分发可重用的 Django 应用程序),我建议使用一种功能检测形式try ... except

例如,在这里我想有条件地使用Django >= 1.6: 的transaction.atomic功能。

正如您所预期的,然后我在Tox 的帮助下针对不同版本的 Django 运行测试。