Django测试运行器具有多线程实时测试服务器和自定义sql_flush功能错误

时间:2017-07-27 08:44:49

标签: python django django-testing

我正在尝试使用此代码段为我的django测试运行器实现线程化实时测试服务器。我们有自定义sql_flush函数,我们想在每个测试用例执行后调用它。当我不使用上面的代码片段(没有多线程方法)时它工作正常,但是当我将上面的代码片段放到我的设置文件中时,从django库调用默认的sql_flush。以下是代码段。你能帮我解决这个问题吗?

from django.core.servers.basehttp import WSGIServer
from django.test import testcases
from django.utils.six.moves import socketserver
testcases.WSGIServer = type(str('WSGIServer'), 
    (socketserver.ThreadingMixIn, WSGIServer), {})

from django.core.management import sql
sql.sql_flush = sql_flush_without_cms #this is custom flush function

这是我面临的错误:

  

CommandError:数据库test_db无法刷新。可能   原因:   *数据库未运行或未正确配置。   *至少有一个预期的数据库表不存在。   * SQL无效。   提示:查看' django-admin.py sqlflush'的输出。这就是SQL   这个命令无法运行。   完整错误:无法截断外键中引用的表   约束       详情:表" authtoken_token"引用" users_userprofile"。       提示:截断表" authtoken_token"同时,或使用       TRUNCATE ... CASCADE。

0 个答案:

没有答案