Если дубликаты первичных ключей приводят к ошибке при загрузке прибора, многие существующие тесты будут нарушены.Иногда устройство должно содержать эту ошибку, поэтому его можно проверить по.
Вы можете написать общие тесты для проверки упомянутых проблем:
Есливаш прибор не загружается, любой запрос, основанный на этом приборе, не будет выполнен.Напишите тест, который пытается получить объект в этом приборе (например, YourObject.objects.get(pk=1)
или YourObject.objects.get(name='My Test Entry')
.
. Чтобы проверить наличие дублирующих первичных ключей, сравните YourObject.objects.all().aggregate(Count('id', distinct=True))
с YourObject.objects.all().aggregate(Count('id'))
. Если они не совпадают, у вас есть дубликаты первичных ключей.
Чтобы избежать плохо отформатированных файлов фикстур, создайте их из проверенных данных. Используйте manage.py dumpdata
и избегайте ручного создания илиРедактирование приборов.
В первом упомянутом тесте будет указано, что у вас неверный путь. Последняя рекомендация устраняет все проблемы с неправильным форматированием.
Ошибка без вывода сообщенийявляется результатом работы loaddata
. Он ищет имена файлов, указанные в списке fixtures = []
в нескольких местах, и может не найти файлы ни в одном из них. Чтобы сообщить об ошибке, loaddata
долженотследить, был ли файл еще найден, и для которого требуется исправление. Для тихого сбоя есть запрос trac, но он был обработан в 'Design Decision Needed' уже 2 года.
Yoу вас есть возможность пошутить об этом в списке рассылки Django, и использовать неутвержденный патч в своей разработке Django.