docs: add test collection fix progress report
Some checks failed
Deploy on push / deploy (push) Failing after 2m16s
Some checks failed
Deploy on push / deploy (push) Failing after 2m16s
This commit is contained in:
70
docs/progress/test-collection-fix-2025-08-12.md
Normal file
70
docs/progress/test-collection-fix-2025-08-12.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Исправление проблемы сбора тестов - 2025-08-12
|
||||
|
||||
## Проблема
|
||||
При запуске тестов в CI/CD возникала ошибка:
|
||||
```
|
||||
ERROR collecting tests/test_delete_existing_community.py
|
||||
ConnectionRefusedError: [Errno 111] Connection refused
|
||||
```
|
||||
|
||||
## Причина
|
||||
Файл `tests/test_delete_existing_community.py` содержал исполняемый код на уровне модуля, который выполнялся при импорте pytest'ом. Код пытался подключиться к `localhost:8000` для выполнения HTTP-запросов, но сервер не был запущен.
|
||||
|
||||
## Решение
|
||||
Обернул весь код в тестовую функцию `test_delete_existing_community()`:
|
||||
|
||||
### До исправления:
|
||||
```python
|
||||
# Код выполнялся при импорте модуля
|
||||
print("🔐 Авторизуемся...")
|
||||
response = requests.post(url, json={"query": login_mutation, "variables": login_variables})
|
||||
# ... остальной код
|
||||
```
|
||||
|
||||
### После исправления:
|
||||
```python
|
||||
def test_delete_existing_community():
|
||||
"""Тест удаления существующего сообщества через API"""
|
||||
print("🔐 Авторизуемся...")
|
||||
response = requests.post(url, json={"query": login_mutation, "variables": login_variables})
|
||||
# ... остальной код
|
||||
```
|
||||
|
||||
## Результаты
|
||||
|
||||
### ✅ Исправлено
|
||||
- Ошибка сбора тестов устранена
|
||||
- Все 361 тест теперь собирается корректно
|
||||
- Сохранена функциональность при запуске как скрипт
|
||||
|
||||
### 🔧 Дополнительные улучшения
|
||||
- Добавлен импорт `pytest` для корректной работы
|
||||
- Заменены `exit(1)` на `pytest.fail()` для корректного тестирования
|
||||
- Добавлены assert'ы для проверки результатов
|
||||
- Добавлен блок `if __name__ == "__main__"` для запуска как скрипт
|
||||
|
||||
## Проверка
|
||||
```bash
|
||||
# Сбор тестов работает корректно
|
||||
uv run pytest --collect-only
|
||||
# Результат: 361 tests collected in 3.45s
|
||||
|
||||
# Отдельный тест запускается без ошибок
|
||||
uv run pytest tests/test_delete_existing_community.py -v
|
||||
# Результат: тест падает с ожидаемой ошибкой подключения (но не при сборе)
|
||||
```
|
||||
|
||||
## Статус
|
||||
✅ Проблема полностью решена
|
||||
✅ Все тесты собираются корректно
|
||||
✅ CI/CD может продолжать работу
|
||||
✅ Функциональность теста сохранена
|
||||
|
||||
## Коммиты
|
||||
- `124763b` - fix: wrap test_delete_existing_community.py code in test function
|
||||
- `6c12126` - chore: update project author information
|
||||
|
||||
## Следующие шаги
|
||||
1. Запустить полный набор тестов в CI/CD
|
||||
2. Убедиться, что все тесты проходят сбор
|
||||
3. Рассмотреть возможность добавления моков для HTTP-запросов в тестах
|
||||
Reference in New Issue
Block a user