Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 原始mysql查询在测试中失败,但使用django可以正确运行_Python_Mysql_Django_Unit Testing_Testing - Fatal编程技术网

Python 原始mysql查询在测试中失败,但使用django可以正确运行

Python 原始mysql查询在测试中失败,但使用django可以正确运行,python,mysql,django,unit-testing,testing,Python,Mysql,Django,Unit Testing,Testing,我正在为django应用程序编写单元测试。当从web触发时,我正在测试的代码可以正常工作,但是当测试时,代码会失败,DatabaseError:在同一台机器上没有这样的列:TRUE 下面是失败的代码 sql = """SELECT `ad`.`question_id` FROM `ad` INNER JOIN `question` ON (`ad`.`question_id` = `question`.`id`) INNER

我正在为django应用程序编写单元测试。当从web触发时,我正在测试的代码可以正常工作,但是当测试时,代码会失败,DatabaseError:在同一台机器上没有这样的列:TRUE

下面是失败的代码

sql = """SELECT `ad`.`question_id`
            FROM `ad`
            INNER JOIN `question` ON (`ad`.`question_id` = `question`.`id`)
            INNER JOIN `answer` ON (`question`.`id` = `answer`.`question_id`)
            WHERE `ad`.`is_active` = TRUE
                AND `answer`.`language_id` = %(language_id)s
                AND `ad`.`order` = %(order)s
            """ % {
                "language_id": user.language.id,
                "order": user.state.total
            }


cursor = connection.cursor()
if cursor.execute(sql):
    ...
上面生成的sql如下所示

SELECT `ad`.`question_id`
            FROM `ad`
            INNER JOIN `question` ON (`ad`.`question_id` = `question`.`id`)
            INNER JOIN `answer` ON (`question`.`id` = `answer`.`question_id`)
            WHERE `ad`.`is_active` = TRUE
                AND `answer`.`language_id` = 1
                AND `ad`.`order` = 672
当用户从web触发相关代码时,它可以在mysql shell中正确执行,也可以由django本身正确执行。但当使用django测试框架进行测试时,它失败了

我正在Python2.7上运行django 1.5.10

我做错了什么


编辑:如果将TRUE替换为1,则它也适用于测试。

好吧,我使用sqlite作为测试数据库。sqlite似乎没有布尔文本。这就是测试最初失败的原因,但当TRUE替换为1时,测试可以正常运行。把这个留在这里,以防有人陷入类似的境地