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