3.2 KiB
3.2 KiB
Исправление проблемы сбора тестов - 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():
До исправления:
# Код выполнялся при импорте модуля
print("🔐 Авторизуемся...")
response = requests.post(url, json={"query": login_mutation, "variables": login_variables})
# ... остальной код
После исправления:
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__"для запуска как скрипт
Проверка
# Сбор тестов работает корректно
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 function6c12126- chore: update project author information
Следующие шаги
- Запустить полный набор тестов в CI/CD
- Убедиться, что все тесты проходят сбор
- Рассмотреть возможность добавления моков для HTTP-запросов в тестах