Тест Django не загружает данные об оборудовании
Я написал тесты для проекта Django, над которым я работаю, но одно конкретное приспособление не загружается.
Инструмент создается с использованием дампдатов, и я вообще не играл с ним.
Я могу загрузить данные с помощью manage.py на этом устройстве без ошибок. Я проверил, что данные фактически загружаются с использованием оболочки и запрашивают данные.
Это приводит меня в бешенство, любая помощь будет высоко оценена.
Вот мой тестовый файл (удаленные части удалены):
class ViewsFromUrls(TestCase):
fixtures = [
'centers/fixtures/test_data.json',
'intranet/fixtures/test_data.json',
'training/fixtures/test_data.json', #The one that fails to load
]
def setUp(self):
self.c = Client()
self.c.login(username='USER', password='PASS')
...
def test_ViewBatch(self):
b = Batch.objects.all()[0].ticket_number
response = self.c.get(reverse('training.views.view_batch', kwargs={'id':b}))
self.assertTrue(response.status_code, 200)
...
Ответы
Ответ 1
Я не уверен, что это исправляет вашу проблему, но на этом сайте:
https://code.djangoproject.com/wiki/Fixtures
Я нашел интересное замечание:
вы видите, что Django выполняет поиск имен/дополнений и settings.FIXTURE_DIRS и загружает первое совпадение. Поэтому, если вы используете имена например testdata.json для ваших приборов, вы должны убедиться, что ни один другой активное приложение использует одноименное устройство. Если нет, вы можете никогда не будьте уверены, какие приспособления вы на самом деле загружаете. Поэтому предположил, что вы префикс своих светильников с именами приложений, например myapp/fixtures/myapp_testdata.json.
Применяя это (переименование светильников с именем приложения в качестве префикса в имени файла), я решил проблему (у меня была такая же проблема, как описано здесь)
Ответ 2
Импортируйте TestCase из django.test
:
from django.test import TestCase
class test_something(TestCase):
fixtures = ['one.json', 'two.json']
...
- Не:
import unittest
- Не:
import django.utils.unittest
- Но:
import django.test
Это день разочарования прямо там.
Прекратите жаловаться - в документах: -/
Ответ 3
Проверьте, действительно ли прибор находится в правильном месте. Из docs:
Django будет искать в трех местах для светильников:
- В каталоге приборов каждого установленного приложения
- В любом каталоге, указанном в настройке FIXTURE_DIRS
-
В литеральном пути, названном прибором
Ответ 4
Следует отметить, что при создании константы FIXTURE_DIRS в вашем файле настроек не забудьте оставить "/", если у вас есть общий каталог светильников от корня вашего проекта.
Пример:
'/Фактический/путь/к/моя/приложение/приборы/'
Теперь в файле settings.py:
Не будет работать:
FIXTURE_DIRS = '/fixtures/'
Будет работать:
FIXTURE_DIRS = 'fixtures/'
Возможно, это зависит от того, как настроены ваши другие маршруты, но это было похоже на то, что я немного почесал голову. Надеюсь, это полезно. Приветствия.