1

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

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

更新

我挖出了这张票,它直接涉及这个问题,并提出了一个小的解决方法。

4

2 回答 2

0

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

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

可以在此处找到有关如何使用 South 对数据库视图使用自定义迁移的教程。Django 自己的迁移框架中的语法有点不同,但文档RunSQL说明了这一切。

于 2015-12-03T09:48:05.860 回答
-1

只需像它们本身的 sql 一样在本地运行它们。

或者

使用sqlcustom

或者

不要打扰他们;您可能会发现自己在上游尝试并通过 ORM 充分利用这些功能和视图。

或者

考虑另一个更适合使用本机 sql 的 python 框架(我敢说)。

于 2013-10-15T00:06:32.840 回答