Тестирование Django — загрузка данных в базу данных перед загрузкой приложенийPython

Программы на Python
Ответить
Anonymous
 Тестирование Django — загрузка данных в базу данных перед загрузкой приложений

Сообщение Anonymous »

В настоящее время я пишу несколько тестов для приложения Django (+ платформа REST), и у меня возникли проблемы с загрузкой тестовых данных в базу данных.

Позвольте мне объяснить с некоторым (очень упрощенным) кодом:

У меня есть представление Django, что-то вроде:

view.py

Код: Выделить всё

from myapp.models import Item
from myapp.utils import MyClass

# need to initialize with the set of items
item_set = {item.name for item in Item.objects.all()}
my_class_object = MyClass(item_set)

class MyView(APIView):
def post(selfself, request):
result = my_class_object.process(request.data)
return Response(result)
По сути, мне нужно инициализировать класс с некоторыми данными из базы данных, а затем я использую этот класс, по моему мнению, для обработки данных, полученных конечной точкой.

По сути, мне нужно инициализировать класс с некоторыми данными из базы данных, а затем использовать этот класс, по моему мнению, для обработки данных, полученных конечной точкой.

По сути, мне нужно инициализировать класс с некоторыми данными из базы данных, а затем использовать этот класс, по моему мнению, для обработки данных, полученных конечной точкой.

По сути, мне нужно инициализировать класс с некоторыми данными из базы данных, а затем использовать этот класс, по моему мнению, для обработки данных, полученных конечной точкой.

p>

Теперь тест:

my_test.py

Код: Выделить всё

from rest_framework.test import APILiveServerTestCase
from myapp.models import Item

class MyTest(APILiveServerTestCase):

def setUp(self):
self.URL = '/some_url_linking_to_myview/'

# load some data
Item.objects.create(name="first item")
Item.objects.create(name="second item")

def test_myview_return_correct_result(self):
post_data = {"foo"}
response = self.client.post(self.URL,
data=post_data,
format='json')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data, {"my_expected_result"})
При запуске теста в настоящее время происходит следующее: view.py загружается перед методом setUp() быть казнен, поэтому, когда я создаю экземпляр класса с помощью этих двух строк:

Код: Выделить всё

item_set = {item.name for item in Item.objects.all()}
my_class_object = MyClass(item_set)
база данных все еще пуста.

Мне интересно, есть ли способ получить данные в базу данных до того, как view.py будет выполнен, или, может быть, каким-то образом принудительно перезагрузить приложение после setUp(), или создать экземпляр моего класса где-нибудь еще, чтобы он вызывался после загрузки данных?

спасибо!

Подробнее здесь: https://stackoverflow.com/questions/449 ... g-the-apps
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»