如何提供测试Django应用程序所需的SQL函数和视图

如何提供测试Django应用程序所需的SQL函数和视图,sql,django,unit-testing,testing,django-postgresql,Sql,Django,Unit Testing,Testing,Django Postgresql,我创建了一个文件,以便在syncdb运行后使用钩子传递任意SQL。在这个文件中有两个PostgreSQL函数声明和一个创建数据库视图的语句。这在生产环境中运行良好,但正如文档所说,由于建议使用fixture,因此代码不会针对测试数据库运行。现在,我的单元测试缺少关键的数据库视图和函数,因此失败了 如何测试依赖原始sql函数/视图的代码 更新 我找出了与这个问题直接相关的问题,并提出了一个小的解决方法。只需像sql一样在本地运行它们 或 使用 或 不要为它们烦恼;您可能会发现自己正在逆流而上,试图

我创建了一个文件,以便在syncdb运行后使用钩子传递任意SQL。在这个文件中有两个PostgreSQL函数声明和一个创建数据库视图的语句。这在生产环境中运行良好,但正如文档所说,由于建议使用fixture,因此代码不会针对测试数据库运行。现在,我的单元测试缺少关键的数据库视图和函数,因此失败了

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

更新


我找出了与这个问题直接相关的问题,并提出了一个小的解决方法。

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

使用

不要为它们烦恼;您可能会发现自己正在逆流而上,试图充分利用这些函数,并通过ORM进行查看


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

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

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


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

很抱歉,您的答案都没有真正解决我的问题。如何在不违反DRY的情况下以本机方式运行sql?sqlcustom打印前面提到的SQL文件的内容,但不能帮助我用自定义SQL语句填充测试数据库。也许答案是否定的。没有。