Тестирование вашего сайта Wagtail
Wagtail поставляется с некоторыми утилитами, которые упрощают написание тестов для вашего сайта.
WagtailPageTests
Помощники по данным форм
Метод assertCanCreate требует, чтобы данные страницы передавались в том же формате, что и форма редактирования страницы. Для сложных типов страниц построение этой структуры данных вручную может быть затруднено; модуль wagtail.test.utils.form_data предоставляет набор вспомогательных функций для помощи в этом.
Файлы
Использование dumpdata
Создание файлов для тестов лучше всего выполняется путем создания контента в среде разработки и использования команды Django dumpdata.
Обратите внимание, что по умолчанию dumpdata будет представлять content_type по первичному ключу; это может вызвать проблемы с согласованностью при добавлении/удалении моделей, так как типы контента заполняются отдельно от файлов.
Чтобы предотвратить это, используйте переключатель --natural-foreign, который представляет типы контента через ["app", "model"] вместо этого.
Ручное изменение
Вы можете вручную изменить сгенерированные файлы или даже написать их все вручную. Вот несколько моментов, на которые следует обратить внимание.
Пользовательские модели страниц
При создании настраиваемых моделей страниц в файлах вам потребуется добавить запись wagtailcore.page, а также одну для вашей пользовательской модели страницы.
Допустим, у вас есть модуль website, который определяет класс Homepage(Page). Вы можете создать такую домашнюю страницу в файле с помощью:
[
{
"model": "wagtailcore.page",
"pk": 3,
"fields": {
"title": "My Customer's Homepage",
"content_type": ["website", "homepage"],
"depth": 2
}
},
{
"model": "website.homepage",
"pk": 3,
"fields": {}
}
]
Поля Treebeard
Заполнение полей path / numchild / depth необходимо для правильной работы операций с деревом, таких как get_parent(). url_path — еще одно поле, которое может вызвать ошибки в некоторых редких случаях, если оно не заполнено.
Документация Treebeard может помочь в понимании работы этого механизма.
© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v3.0.3/advanced_topics/testing.html