Перейти к содержанию

Тест-кейсы: задачи

Источник: документация проекта мобильных автотестов, модуль tests/test_tasks.py.

Актуализировано: 2026-08-13. Описаны 32 тестовые функции и 33 UI-варианта с учётом параметризации PDF viewer.

Основание: автотесты tests/test_tasks.py, текущая документация покрытия в docs/.

Покрываемая область:

  1. TC-3-001 Создание задачи и проверка уведомления
  2. TC-3-002 Редактирование задачи и проверка корректности данных
  3. TC-3-003 Поиск задачи по уникальному названию
  4. TC-3-004 Добавление комментария к задаче
  5. TC-3-005 Редактирование комментария к задаче
  6. TC-3-006 Удаление комментария у задачи
  7. TC-3-007 Попытка создать задачу без обязательного названия
  8. TC-3-008 Попытка сохранить пустой комментарий
  9. TC-3-009 Удаление задачи
  10. TC-3-010 Пользователь 1 не может управлять комментарием пользователя 2
  11. TC-3-011 Пользователь 2 не может управлять комментарием пользователя 1
  12. TC-3-012 Загрузка и удаление PDF-документа в задаче
  13. TC-3-013 Открытие PDF-документа в задаче
  14. TC-3-014 Открытие изображения в задаче
  15. TC-3-015 Скачивание XLSX-документа из задачи
  16. TC-3-016 Отмена выбора документа в задаче
  17. TC-3-017 Отмена и скачивание XLSX-документа через меню задачи
  18. TC-3-018 Удаление одного документа задачи сохраняет остальные
  19. TC-3-019 Задача отображается в назначенную дату календаря
  20. TC-3-020 Многодневная задача отображается на всём диапазоне календаря
  21. TC-3-021 Перенос дат перемещает задачу в календаре
  22. TC-3-022 Удалённая задача исчезает из календаря
  23. TC-3-023 Фильтр по тегу изменяет список задач календаря
  24. TC-3-024 UTC-дата около полуночи учитывает часовой пояс устройства
  25. TC-3-025 Offline-refresh сохраняет список и получает новые данные после восстановления сети
  26. TC-3-026 Завершение задачи и возврат в активные
  27. TC-3-027 Строгая сортировка задач по дате создания
  28. TC-3-028 Фильтрация задач по ответственному и участнику
  29. TC-3-029 Создание задачи из карточки сделки с сохранением связи
  30. TC-3-030 Запрет изменения и удаления задачи пользователем без прав
  31. TC-3-031 Ошибка скачивания документа при обрыве сети и успешный повтор
  32. TC-3-032 Сохранение черновика задачи после background/foreground

Общие предусловия:

  • Установлено и запущено мобильное приложение или подготовлен мобильный тестовый стенд.
  • Тестовые пользователи, роли и данные подготовлены согласно предусловиям конкретного кейса.
  • Сценарий выполняется на актуальной сборке приложения и доступном тестовом сервере.
Название Предусловия Запрос / шаги Ожидаемый результат
TC-3-001 Создание задачи и проверка уведомления Автотест: test_create_task.
Маркер: smoke.
- Установлено и запущено мобильное приложение.
- Доступна учетная запись test_mobile_user_1.
- Доступен экземпляр процесса из TASK_UI_PROCESS_TITLE.
- Доступны пользователи test_mobile_user_1 и test_mobile_user_2.
Тестовые данные:
- Название задачи: Название тестовой задачи <uuid>
- Описание: Суть тестовой задачи: '<название задачи>'
- Ответственный: test_mobile_user_1
- Участник по умолчанию: test_mobile_user_2
- Экземпляр процесса: значение TASK_UI_PROCESS_TITLE
1. Авторизоваться как test_mobile_user_1 и через нижнее меню открыть раздел задач.
2. Нажать кнопку добавления задачи.
3. Заполнить название, описание и ответственного.
4. Выбрать участника, дату окончания и процесс.
5. Создать задачу.
6. Открыть раздел уведомлений по задачам.
1. Отображается экран задач.
2. Отображается форма с полями задачи.
3. Данные введены в форму.
4. Дополнительные параметры установлены, задача привязана к нужному процессу.
5. Форма создания закрывается после отправки.
6. В уведомлениях ответственного отображается уникальное название созданной задачи.
TC-3-002 Редактирование задачи и проверка корректности данных Автотест: test_edit_task.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру created_task создана задача Название тестовой задачи <uuid>.
Тестовые данные:
- Новое название: <исходное название> (edit)
- Новое описание: <исходное описание> (edit)
1. Открыть раздел задач и найти созданную задачу.
2. Открыть меню созданной задачи.
3. Выбрать редактирование.
4. Изменить название и описание задачи.
5. Сохранить изменения.
6. Открыть задачу и проверить данные.
1. Задача отображается в списке.
2. Отображается список действий с задачей.
3. Открывается форма редактирования с текущими данными задачи.
4. Новые значения отображаются в полях.
5. Изменения применены.
6. В карточке отображаются новое название и новое описание.
TC-3-003 Поиск задачи по уникальному названию Автотест: test_filter_tasks_by_status_or_search.
Маркер: smoke.
- Пользователь авторизован.
- Через API создана задача с уникальным названием.
- Задача относится к процессу из TASK_PROCESS_TITLE.
1. Открыть раздел задач и перейти в процесс задач.
2. Ввести в поиск уникальное название целевой задачи.
3. Проверить целевую задачу.
1. Отображается список задач процесса.
2. В поле поиска отображается введенный запрос.
3. Задача с введенным названием отображается в текущем списке.
TC-3-004 Добавление комментария к задаче Автотест: test_task_add_comment.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру created_task создана задача.
Тестовые данные:
- Комментарий: Тестовый комментарий <uuid>
1. Открыть раздел задач и карточку созданной задачи.
2. Перейти на вкладку комментариев.
3. Ввести и отправить комментарий.
4. Дождаться появления точного текста комментария.
5. Повторно открыть карточку и секцию комментариев.
6. Проверить сохранённый комментарий.
1. Отображается карточка задачи.
2. Отображается блок комментариев.
3. Отправка завершается появлением точного текста комментария, а не только очисткой поля ввода.
4. После повторного открытия комментарий остаётся в списке.
TC-3-005 Редактирование комментария к задаче Автотест: test_task_edit_comment.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру created_task создана задача.
- В задачу добавлен комментарий Тестовый комментарий <uuid>.
Тестовые данные:
- Новый комментарий: Тестовый комментарий <uuid> (edit)
1. Открыть карточку задачи и вкладку комментариев.
2. Открыть меню комментария и выбрать редактирование.
3. Заменить текст комментария и сохранить.
4. Проверить результат.
1. Отображается добавленный комментарий.
2. Открывается режим редактирования комментария.
3. Изменения сохраняются.
4. Старый текст не отображается, новый текст отображается.
TC-3-006 Удаление комментария у задачи Автотест: test_task_delete_comment.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру created_task создана задача.
- В задачу добавлен комментарий Тестовый комментарий <uuid>.
1. Открыть карточку задачи и вкладку комментариев.
2. Открыть меню комментария и выбрать удаление.
3. Проверить отсутствие комментария.
1. Отображается добавленный комментарий.
2. Комментарий удаляется.
3. Комментарий больше не отображается.
TC-3-007 Попытка создать задачу без обязательного названия Автотест: test_create_task_without_required_title.
Маркер: regression.
- Пользователь авторизован.
- Доступен процесс задач.
- Доступен пользователь test_mobile_user_1.
1. Через кнопку добавления задачи открыть форму создания.
2. Заполнить ответственного и описание, не заполняя название.
3. Проверить кнопку создания.
1. Форма создания отображается.
2. Обязательное поле названия остается пустым.
3. Кнопка «Создать» недоступна для нажатия.
TC-3-008 Попытка сохранить пустой комментарий Автотест: test_save_empty_comment.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру created_task создана задача.
1. Под ответственным пользователем открыть задачу из уведомления и перейти на вкладку комментариев.
2. Не вводить текст комментария.
3. Проверить кнопку отправки.
1. Поле ввода комментария отображается.
2. Поле комментария пустое.
3. Кнопка отправки недоступна для нажатия.
TC-3-009 Удаление задачи Автотест: test_delete_task.
Маркер: smoke.
- Пользователь авторизован.
- Через API-фикстуру created_task создана задача.
1. Открыть меню созданной задачи.
2. Выбрать удаление и подтвердить действие.
3. Проверить список задач.
1. Отображается список действий с задачей.
2. Задача удаляется.
3. Удаленная задача не отображается.
TC-3-010 Пользователь 1 не может управлять комментарием пользователя 2 Автотест: test_user_1_cannot_manage_user_2_comment.
Маркер: regression.
- Администратор создал задачу через фикстуру foreign_comment_task.
- Пользователь test_mobile_user_2 добавил комментарий к этой задаче.
1. Авторизоваться отдельной сессией под test_mobile_user_2.
2. Добавить комментарий к задаче.
3. Авторизоваться отдельной сессией под test_mobile_user_1.
4. Открыть задачу и вкладку комментариев.
5. Проверить меню комментария.
1. Пользователь авторизован.
2. Комментарий пользователя 2 отображается в задаче.
3. Пользователь авторизован.
4. Комментарий пользователя 2 отображается.
5. Меню редактирования/удаления чужого комментария отсутствует.
TC-3-011 Пользователь 2 не может управлять комментарием пользователя 1 Автотест: test_user_2_cannot_manage_user_1_comment.
Маркер: regression.
- Администратор создал задачу через фикстуру foreign_comment_task.
- Пользователь test_mobile_user_1 добавил комментарий к этой задаче.
1. Авторизоваться отдельной сессией под test_mobile_user_1.
2. Добавить комментарий к задаче.
3. Авторизоваться отдельной сессией под test_mobile_user_2.
4. Открыть задачу и вкладку комментариев.
5. Проверить меню комментария.
1. Пользователь авторизован.
2. Комментарий пользователя 1 отображается в задаче.
3. Пользователь авторизован.
4. Комментарий пользователя 1 отображается.
5. Меню редактирования/удаления чужого комментария отсутствует.
TC-3-012 Загрузка и удаление PDF-документа в задаче Автотест: test_task_upload_and_delete_pdf_document.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру created_task создана задача.
- Подготовлен PDF-файл 03_task_attachment.pdf.
1. Открыть созданную задачу.
2. Перейти на вкладку «Документы».
3. Загрузить PDF-файл через системное окно выбора файла.
4. Проверить появление файла в списке документов.
5. Открыть меню документа и удалить его.
6. Проверить отсутствие документа в списке.
1. Открывается карточка задачи.
2. Отображается раздел документов задачи.
3. PDF-файл успешно загружается.
4. Документ с ожидаемым именем отображается.
5. Документ удаляется.
6. Удалённый документ больше не отображается.
TC-3-013 Открытие PDF-документа в задаче Автотест: test_task_pdf_document_viewer.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру создана задача.
- Подготовлен PDF-файл 09_minimal_one_page.pdf.
1. Открыть созданную задачу и вкладку «Документы».
2. Загрузить PDF-файл.
3. Нажать на загруженный документ.
4. Проверить заголовок PDF viewer.
5. Вернуться назад в задачу.
6. Удалить документ.
1. Отображается раздел документов задачи.
2. PDF появляется в списке.
3. Открывается встроенный PDF viewer.
4. В заголовке отображается имя выбранного файла.
5. Снова отображается вкладка документов задачи и загруженный PDF.
6. Документ удалён из списка.
TC-3-014 Открытие изображения в задаче Автотест: test_task_image_document_viewer.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру создана задача.
- Подготовлено PNG-изображение 09_minimal_icon.png.
1. Открыть вкладку «Документы» задачи.
2. Загрузить PNG-изображение.
3. Нажать на загруженный документ.
4. Вернуться назад из image viewer.
5. Проверить документ в списке и удалить его.
1. Отображается раздел документов задачи.
2. Изображение появляется в списке.
3. Открывается встроенный image viewer.
4. Снова отображается вкладка документов задачи.
5. Документ доступен и успешно удаляется.
TC-3-015 Скачивание XLSX-документа из задачи Автотест: test_task_xlsx_document_download.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру создана задача.
- Подготовлен XLSX-файл 09_minimal_one_sheet.xlsx.
1. Открыть вкладку «Документы» задачи.
2. Загрузить XLSX-файл.
3. Нажать на документ и подтвердить скачивание.
4. Проверить файл в каталоге загрузок Android.
5. Удалить серверный документ и локальный файл.
1. XLSX появляется в списке документов задачи.
2. Открывается окно скачивания.
3. Команда скачивания выполняется.
4. Файл существует на устройстве, его SHA-256 совпадает с исходным XLSX.
5. Тестовые данные очищены.
TC-3-016 Отмена выбора документа в задаче Автотест: test_task_cancel_document_selection.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру создана задача.
- Подготовлен PDF-файл с уникальным именем.
1. Открыть вкладку «Документы» задачи.
2. Открыть системный file picker.
3. Вернуться назад без выбора подготовленного файла.
4. Проверить список документов.
1. Системный file picker открывается.
2. После возврата снова отображается раздел документов.
3. Подготовленный файл не появился в задаче.
TC-3-017 Отмена и скачивание XLSX-документа через меню задачи Автотест: test_task_cancel_and_download_xlsx_document_from_menu.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру создана задача.
- Подготовлен XLSX-файл.
1. Загрузить XLSX в задачу.
2. Открыть download-sheet и отменить скачивание.
3. Проверить отсутствие локального файла.
4. Открыть меню документа и выбрать «Скачать».
5. Проверить целостность скачанного файла по SHA-256.
1. После отмены файл на устройстве не создаётся.
2. Документ остаётся в списке задачи.
3. Скачивание через меню создаёт файл, идентичный исходному.
TC-3-018 Удаление одного документа задачи сохраняет остальные Автотест: test_task_delete_one_document_preserves_others.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру создана задача без документов.
- Подготовлены PDF- и XLSX-файлы.
1. Загрузить два документа.
2. Удалить PDF.
3. Проверить, что XLSX остался в списке.
4. Переоткрыть задачу.
5. Повторно проверить отсутствие PDF и наличие XLSX.
1. Удаляется только выбранный PDF.
2. Второй документ не теряется.
3. Состояние сохраняется после повторного открытия задачи.
TC-3-019 Задача отображается в назначенную дату календаря Автотест: test_task_is_displayed_on_assigned_calendar_date.
Маркер: regression.
- Пользователь авторизован.
- Через API-фикстуру создана задача со сроком D+2.
- Задача относится к доступному пользователю экземпляру процесса.
Тестовые данные:
- Название задачи: Название тестовой задачи <uuid> calendar
- Назначенная дата: D+2
- Соседняя дата: следующий день или предыдущий день для воскресенья
1. Открыть календарь задач.
2. Выбрать назначенную дату D+2 в месячном календаре.
3. Проверить название задачи в списке выбранного дня.
4. Выбрать соседнюю дату в недельном календаре.
5. Проверить отсутствие задачи в списке соседнего дня.
1. Открывается месячный календарь задач.
2. Календарь переходит к недельному представлению выбранной даты.
3. В списке выбранного дня отображается API-подготовленная задача.
4. Выбирается соседняя дата той же календарной недели.
5. API-подготовленная задача отсутствует в списке соседнего дня.
TC-3-020 Многодневная задача отображается на всём диапазоне календаря Автотест: test_multiday_task_is_displayed_for_each_calendar_date.
Маркер: regression.
- Через API создана задача с началом D+1 и окончанием D+3.
1. Последовательно выбрать D+1, D+2 и D+3.
2. Проверить задачу в каждом выбранном дне.
3. Выбрать даты до начала и после окончания.
1. Задача отображается во все дни включительного диапазона.
2. За пределами диапазона задача отсутствует.
TC-3-021 Перенос дат перемещает задачу в календаре Автотест: test_rescheduled_task_moves_between_calendar_dates.
Маркер: regression.
- Через API создана однодневная задача на D+2.
1. Проверить задачу на исходной дате.
2. Через API перенести начало и окончание на D+4.
3. Обновить календарь и проверить обе даты.
1. До переноса задача видна на D+2.
2. После переноса задача отсутствует на D+2 и отображается на D+4.
TC-3-022 Удалённая задача исчезает из календаря Автотест: test_deleted_task_disappears_from_calendar.
Маркер: regression.
- Через API создана задача на D+2.
1. Проверить задачу в календаре.
2. Удалить задачу через API и дождаться подтверждения удаления.
3. Обновить календарь на той же дате.
1. До удаления задача отображается.
2. После обновления удалённая задача отсутствует.
TC-3-023 Фильтр по тегу изменяет список задач календаря Автотест: test_task_filter_applies_to_calendar.
Маркер: regression.
- На одну дату через API созданы задачи с разными тегами.
1. Проверить обе задачи на выбранной дате.
2. Выбрать фильтр по тегу и переоткрыть календарь.
3. Проверить отфильтрованный список.
4. Сбросить фильтр, переоткрыть календарь и проверить исходный список.
1. С выбранным тегом видна только соответствующая задача.
2. После сброса снова отображаются обе задачи.
TC-3-024 UTC-дата около полуночи учитывает часовой пояс устройства Автотест: test_calendar_uses_device_timezone_near_midnight.
Маркер: regression.
- Часовой пояс Android установлен в Europe/Moscow.
- Через API создана задача на 23:30 UTC.
1. Рассчитать локальную дату задачи.
2. Выбрать локальную дату в календаре.
3. Проверить задачу и её отсутствие на соседней UTC-дате.
1. Задача отображается на следующем локальном календарном дне.
2. На исходной UTC-дате задача отсутствует.
3. После теста исходный часовой пояс устройства восстановлен.
TC-3-025 Offline-refresh сохраняет список и получает новые данные после восстановления сети Автотест: test_tasks_refresh_recovers_after_network_returns.
Маркер: regression.
- Эмулятор поддерживает ADB root и управление firewall.
- Через API создана контрольная задача в процессе из TASK_PROCESS_TITLE.
1. Найти исходную задачу на корневом экране, открыть найденную группу и проверить задачу в списке.
2. Отключить для эмулятора доступ к тестовому стенду.
3. Выполнить pull-to-refresh и дождаться завершения loader.
4. Проверить, что исходная задача осталась в списке.
5. Пока доступ эмулятора к стенду отключён, создать через API вторую задачу.
6. Восстановить доступ эмулятора к стенду.
7. Повторно выполнить pull-to-refresh.
8. Проверить обе контрольные задачи без перезапуска приложения и повторной авторизации.
1. Offline-refresh завершается и не очищает загруженный список.
2. Новая серверная задача не появляется до восстановления доступа.
3. После успешного refresh отображаются исходная и новая задачи.
4. Fixture восстанавливает доступ к стенду и удаляет обе задачи независимо от результата теста.
TC-3-026 Завершение задачи и возврат в активные Автотест: test_task_can_be_completed_and_reactivated.
Маркер: regression.
- Пользователь авторизован и может управлять API-подготовленной активной задачей.
1. В меню активной задачи выбрать действие «Завершена» и подтвердить.
2. Открыть раздел завершённых задач и найти задачу.
3. В меню завершённой задачи выбрать действие «Активна» и подтвердить.
4. Открыть раздел активных задач и найти задачу.
1. API и раздел завершённых подтверждают статус завершённой задачи.
2. API и раздел активных подтверждают возврат задачи в активное состояние.
TC-3-027 Строгая сортировка задач по дате создания Автотест: test_task_sort_by_created_date_changes_order.
Маркер: regression.
- Через API созданы три задачи с уникальными названиями и разным временем создания.
1. Найти три задачи по общему уникальному префиксу.
2. Выбрать сортировку по дате создания и направление по убыванию.
3. Сопоставить вертикальный порядок трёх карточек с их createdAt.
Карточки отображаются строго от самой новой задачи к самой старой.
TC-3-028 Фильтрация задач по ответственному и участнику Автотест: test_filter_tasks_by_assignee_and_participant.
Маркер: regression.
- Созданы целевая и контрольная задачи с разными ответственными и участниками.
1. Применить фильтр по ответственному целевой задачи.
2. Проверить наличие целевой и отсутствие контрольной задачи.
3. Сбросить фильтры и применить фильтр по участнику целевой задачи.
4. Повторить проверку целевой и контрольной задачи.
Оба фильтра оставляют связанную задачу в списке и исключают несвязанную; сброс возвращает исходное состояние фильтров.
TC-3-029 Создание задачи из карточки сделки с сохранением связи Автотест: test_create_task_from_deal_card_links_task_to_deal.
Маркер: regression.
- Доступна тестовая сделка и пользователи для назначения задачи.
1. Открыть карточку сделки и вкладку задач.
2. Создать задачу из карточки, указав ответственного, участника и тег.
3. Проверить через API идентификатор связанной сделки.
4. Проверить отсутствие задачи у контрольной сделки.
5. Найти созданную задачу через общий раздел задач.
Задача отображается во вкладке и общем списке, API возвращает идентификатор исходной сделки, а у контрольной сделки задача отсутствует.
TC-3-030 Запрет изменения и удаления задачи пользователем без прав Автотест: test_user_without_permissions_cannot_edit_or_delete_foreign_task.
Маркер: regression.
- Выбран неадминистратор без разрешения can_edit_tasks.
- Администратор создал задачу и добавил выбранного пользователя участником.
1. Под пользователем без права редактирования найти задачу в доступном списке.
2. Если просмотр задач разрешён, попытаться изменить название и описание, затем удалить задачу.
3. Если просмотр задач запрещён, проверить отсутствие сделки с целевой задачей в результатах поиска.
4. Проверить исходные данные и существование задачи через API администратора.
При разрешённом просмотре действия изменения и удаления отклоняются; при запрещённом просмотре задача недоступна в UI. Название и описание не изменяются, задача не удаляется.
TC-3-031 Ошибка скачивания документа при обрыве сети и успешный повтор Автотест: test_task_document_download_recovers_after_network_failure.
Маркер: regression.
- В задачу загружен уникальный XLSX.
- Эмулятор поддерживает ADB root для управляемого firewall.
1. Заблокировать доступ эмулятора к тестовому стенду.
2. Попытаться скачать документ.
3. Проверить сообщение об ошибке и отсутствие локального файла.
4. Восстановить сеть и повторить скачивание.
5. Сверить SHA-256 с исходным файлом.
1. Offline-скачивание завершается управляемой ошибкой, документ остаётся в задаче.
2. После возврата сети повтор успешен.
3. Содержимое скачанного файла совпадает с исходным.
TC-3-032 Сохранение черновика задачи после background/foreground Автотест: test_task_draft_survives_background_and_foreground.
Маркер: regression.
- Пользователь авторизован и открыл форму создания задачи.
1. Ввести уникальные название и описание, не сохраняя задачу.
2. Перевести приложение в background.
3. Вернуть приложение на передний план.
4. Проверить форму и значения полей.
1. Форма создания остаётся открытой.
2. Название и описание черновика не теряются.
3. Задача не создаётся.