Напишите тест для OrderDetailView:
- Объявите класс тестов OrderDetailViewTestCase.
- В setUpClass создайте пользователя и добавьте пользователю необходимые разрешения для просмотра заказа (“shopapp.view_order”).
- Добавьте удаление пользователя в tearDownClass.
- При помощи метода setUp сделайте вход пользователя и создание заказа для дальнейшего теста.
- В методе tearDown сделайте удаление заказа.
- Объявите метод test_order_details для проверки получения заказа:
- убедитесь, что в теле ответа есть адрес заказа;
- убедитесь, что в теле ответа есть промокод;
- убедитесь, что в контексте ответа тот же заказ, который был создан перед тестом (сравните по первичному ключу).
Создайте новый view и тест для этого view. Если хотите выполнить задание со звёздочкой, сделайте тест по TDD. Реализуйте view для выгрузки заказов в JSON-виде и напишите для этого тест:
- Реализуйте view-функцию/класс для выгрузки информации по заказам:
- В теле JSON по ключу orders должен возвращаться список с данными по всем заказам.
- В информации по каждому заказу должны быть ID заказа, адрес, промокод, ID пользователя, список ID продуктов.
- Доступ к этому view должен быть только у пользователей с уровнем доступа is_staff (для этого нужно использовать проверку через user passes test).
- Объявите класс тестов OrdersExportTestCase.
- В setUpClass задайте создание пользователя с необходимым уровнем доступа.
- В tearDownClass сделайте удаление пользователя.
- В setUp выполните вход пользователя.
- Напишите тест, который проверяет получение списка заказов:
- Статус кода-ответа — 200.
- В JSON-теле ответа должны быть ожидаемые значения.
- Создайте фикстуры при помощи команды dumpdata. Выполните создание фикстур для следующих сущностей:
- Пользователи.
- Продукты.
- Заказы.
- Используйте эти фикстуры, чтобы проверять экспорт заказов (заказы должны быть связаны с пользователями и продуктами).