Files
core/docs/progress/test-collection-fix-2025-08-12.md

71 lines
3.2 KiB
Markdown
Raw Normal View History

# Исправление проблемы сбора тестов - 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-запросов в тестах