py-testing-async
Написание асинхронных тестов с pytest
Асинхронное тестирование требует особых паттернов, отличающихся от синхронного кода. Этот навык предоставляет готовые к использованию паттерны для конфигурации pytest-asyncio, асинхронных фикстур, мокирования асинхронных функций и изоляции тестов базы данных.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «py-testing-async». How do I test an async function that calls a database?
Ожидаемый результат:
- Use an async fixture with session scope and automatic rollback:
- Create async fixture that yields the session inside a transaction
- Rollback happens automatically when the test completes
- Mark your test with @pytest.mark.asyncio
- Use await to call async database functions
Использование «py-testing-async». How do I mock an async HTTP client call?
Ожидаемый результат:
- Use AsyncMock to create a mock async function:
- mock_response = AsyncMock()
- mock_response.json.return_value = {"data": "test"}
- mock_client.get.return_value = mock_response
- Assert the mock was called with correct arguments
Использование «py-testing-async». What causes event loop closed errors in async tests?
Ожидаемый результат:
- This happens when async fixtures have wrong scope:
- Session-scoped fixtures may outlive the test event loop
- Use function scope for fixtures that need fresh state
- Ensure event_loop fixture matches your test scope
- Check that engine disposal happens at correct scope
Аудит безопасности
БезопасноThis is a pure documentation skill containing only a SKILL.md markdown file with informational content about Python async testing patterns. No executable code, scripts, network calls, filesystem access, or environment variable access. All static findings are false positives - the scanner misidentified code block backticks as shell execution, 'async' as C2 keywords, and configuration strings as cryptographic patterns.
Факторы риска
🌐 Доступ к сети (2)
⚙️ Внешние команды (35)
Оценка качества
Что вы можете построить
Тестирование асинхронных API эндпоинтов
Написание интеграционных тестов для FastAPI или асинхронных эндпоинтов Flask с использованием httpx AsyncClient и ASGITransport.
Мокирование асинхронных вызовов сервисов
Замена асинхронных вызовов базы данных и внешних сервисов на AsyncMock для быстрых изолированных юнит-тестов.
Тестирование операций базы данных
Создание изолированных тестов для асинхронных операций базы данных с правильным откатом транзакций между тестами.
Попробуйте эти промпты
Show me how to configure pytest for async testing with pytest-asyncio. Include both strict and auto modes.
How do I mock an async function that calls an external API? Show me how to use AsyncMock and patch.
Show me how to create an async fixture that rolls back database changes after each test to prevent pollution.
Write a test that covers a multi-step async flow including creating a resource, performing actions, and verifying the final state.
Лучшие практики
- Используйте asyncio_mode = "strict" и @pytest.mark.asyncio для явного указания на асинхронный тест
- Создавайте асинхронные фикстуры, которые возвращают сессию внутри транзакции для автоматического отката
- Используйте AsyncMock вместо Mock при тестировании асинхронных функций
Избегать
- Использование обычного Mock вместо AsyncMock для асинхронных функций
- Забывание @pytest.mark.asyncio при использовании строгого режима
- Запуск тестов без отката транзакций, вызывающий загрязнение тестов