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

我在视图中使用函数来查询 db (postgresql),计算值并返回列表列表。当我从 views.py 调用它时,我得到了预期的结果。当我从 test.py 调用它时,我得到空列表(不是错误,不是无)。为了进行调查,我在视图函数中手动创建了列表列表,并且返回得很好(因此导入或返回值的长度没有问题)。看来,如果我调用从视图导入的函数进行 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)


宝慕林4294392
浏览 156回答 1
1回答

芜湖不芜

因为测试总是从空数据库运行。您需要在测试用例本身中为您的测试创建条目。请参阅测试文档。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python