我已经根据Django docs创建了一个文件<APP>/<MODEL>.sql,以便在运行syncdb后利用钩子传递任意SQL。该文件内有两个PostgreSQL的函数声明和一个创建数据库视图的语句。这在生产中运行良好,但是-正如文档所说-由于建议使用固定装置,因此不会为测试数据库运行代码。现在,我的单元测试缺少关键的数据库视图和功能,因此失败了。

如何测试依赖原始sql函数/视图的代码?

更新

我挖了this ticket直接涉及到这个问题,并提出了一个小解决方法。

最佳答案

我发现处理此问题的最佳方法是将自定义SQL代码放入Django的迁移中。

Django和South(这是Django自己的迁移框架的前身)都提供创建自定义(即空)迁移的命令。可以将用于创建数据库视图或函数的代码放入一个空迁移中,并且在迁移项目的新安装或运行测试套件时将运行该代码。

可以在here上找到有关如何对South的数据库视图使用自定义迁移的教程。语法在Django自己的迁移框架中有所不同,但是documentation about RunSQL对此进行了解释。

关于sql - 如何提供测试Django应用所需的SQL函数和 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19370716/

10-16 18:58
查看更多