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