Есть ли ограничение на выполнение запроса БД в импортированной функции в тестах django? - PullRequest
0 голосов
/ 10 октября 2018

Я использую функцию в представлениях для запроса базы данных (postgresql), вычисления значений и возврата списка списков.Когда я звоню из views.py, я получаю то, что ожидается.Когда я вызываю его из test.py, я получаю пустой список (не ошибка, не None).Чтобы исследовать, я создал список списков в представлении функции вручную, и он был возвращен очень хорошо (так что нет проблем с импортом или длиной возвращаемого значения).Кажется, что если я вызываю функцию, импортированную из представлений, которая делает запрос базы данных, и она вызывается из объекта TestCase, то запрос базы данных не выполняется.Почему?

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)

1 Ответ

0 голосов
/ 10 октября 2018

Потому что тесты всегда запускаются из пустой базы данных.Вам необходимо создать записи для ваших тестов в самих тестовых примерах.См. документы по тестированию .

...