Выполнены этапы 2, 3, 4

Дополнен план работ этапом 7 (покрытие тестами)
This commit is contained in:
ki.sagidullin
2026-04-07 00:59:57 +05:00
parent a8f47d29f6
commit 5d2b665fa6
4 changed files with 293 additions and 82 deletions

50
PLAN.md
View File

@@ -62,7 +62,30 @@
---
## Этап 4: Создание документации
## Этап 4: Создание класса предпочтений операторов
**Файл:** `models.py` (или отдельный файл `preferences.py`)
**Что сделать:**
- Создать класс `OperatorPreferences` для конструирования и управления предпочтениями операторов.
- Реализовать цепочку методов (builder pattern) for удобного создания предпочтений.
- Поддержать следующие типы предпочтений:
- Желаемый рабочий день (конкретные даты месяца)
- Желаемая смена (индекс смены 0-3)
- Желаемый день недели для работы (понедельник, вторник, ...)
- Желаемый выходной (конкретные даты месяца)
- Реализовать метод `__str__` для отладки.
- Обеспечить экспорт предпочтений в формат, пригодный для `config.py`.
**Требования к реализации:**
- Класс должен позволять конструировать предпочтения через цепочку методов.
- Поддерживать три типа предпочтений (как указано выше).
- Экспортировать предпочтения в формат, пригодный для `config.py`.
- Поддерживать метод `__str__` для отладки.
---
## Этап 5: Создание документации
**Файл:** `USER_GUIDE.md`
@@ -74,13 +97,33 @@
---
## Этап 5: Тестирование
## Этап 6: Тестирование
**Проверить:**
1. Запуск `python main.py`
2. Корректное считывание дат из `config.py`
3. Генерация расписания
4. Вывод в CSV
5. Корректная работа класса `OperatorPreferences`
6. Экспорт предпочтений в `config.py`
---
## Этап 7: Написание тестов
**Файл:** `tests/test_all.py`
**Что сделать:**
- Создать тесты для всех модулей проекта
- Использовать pytest для запуска тестов
- Проверить корректность работы всех компонентов
- Добавить тесты для edge-кейсов
**Структура тестов:**
- `test_config.py` - тесты для конфигурации
- `test_models.py` - тесты для моделей и предпочтений
- `test_main.py` - тесты для основного скрипта
- `test_integration.py` - интеграционные тесты
---
@@ -88,3 +131,6 @@
- Конфигурация в одном файле `config.py`
- Простое редактирование без знания Python
- Четкая документация в `USER_GUIDE.md`
- Гибкая система предпочтений через класс `OperatorPreferences`
- Полноценный набор тестов для всех компонентов