Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 在django测试中,在导入的函数中运行db查询是否有限制?_Python_Django_Python 3.x_Django Tests - Fatal编程技术网

Python 在django测试中,在导入的函数中运行db查询是否有限制?

Python 在django测试中,在导入的函数中运行db查询是否有限制?,python,django,python-3.x,django-tests,Python,Django,Python 3.x,Django Tests,我在视图中使用函数查询db(postgresql),计算值并返回列表列表。当我从views.py调用它时,我得到了预期的结果。当我从test.py调用它时,我得到一个空列表(不是error,不是None)。为了进行调查,我已经在views函数中手动创建了列表列表,它返回的很好(所以导入或返回值的长度没有问题)。看起来,如果我调用从视图导入的函数进行db查询,并从TestCase对象调用该函数,那么db查询就不会完成。为什么? from django.test import TestCase fr

我在视图中使用函数查询db(postgresql),计算值并返回列表列表。当我从views.py调用它时,我得到了预期的结果。当我从test.py调用它时,我得到一个空列表(不是error,不是None)。为了进行调查,我已经在views函数中手动创建了列表列表,它返回的很好(所以导入或返回值的长度没有问题)。看起来,如果我调用从视图导入的函数进行db查询,并从TestCase对象调用该函数,那么db查询就不会完成。为什么?

from django.test import TestCase
from <my app>.views import calc
import datetime
from pytz import timezone

class CalcTestCase(TestCase):
    maxDiff = None
    def test_calc_image(self):
        start_time = datetime.datetime(2018, 9, 1, 0, 0, 0, 0, tzinfo=timezone('UTC') )
        finish_time = datetime.datetime(2018, 10, 1, 0, 0, 0, 0, tzinfo=timezone('UTC') )
        instance_type = "test"
        output = calc(instance_type, start_time, finish_time)
        test_output = [[test, values, in],[list, of, lists]]
        self.assertEqual(output, test_output)
来自django.test的
导入测试用例
从.视图导入计算
导入日期时间
从pytz导入时区
类CalcTestCase(测试用例):
maxDiff=None
def测试计算图像(自身):
开始时间=datetime.datetime(2018,9,1,0,0,0,0,tzinfo=时区('UTC'))
完成时间=datetime.datetime(2018,10,1,0,0,0,0,tzinfo=时区('UTC'))
实例\u type=“测试”
输出=计算(实例类型、开始时间、结束时间)
测试输出=[[test,values,in],[list,of,list]]
self.assertEqual(输出、测试输出)

因为测试总是从空数据库运行。您需要在测试用例本身中为测试创建条目。看