temporal-python-testing — скилл для Claude Code: тесты Temporal
Помогает писать тесты для Temporal workflow на pytest: с пропуском времени, моками активностей и проверкой воспроизведения истории. Пригодится при разработке workflow и разборе падений тестов.
/plugin marketplace add wshobson/agents
/plugin install backend-development@claude-code-workflowsЧто делает temporal-python-testing
Скилл описывает модульные, интеграционные и replay-тесты для Temporal на Python. В примерах используются WorkflowEnvironment с пропуском времени, ActivityEnvironment для тестирования активностей и Worker для запуска workflow. Пропуск времени позволяет проверять долгие workflow без ожидания реального времени.
Материалы разделены по задачам: resources/unit-testing.md, resources/integration-testing.md, resources/replay-testing.md и resources/local-setup.md. В них рассматриваются моки активностей, внедрение ошибок, сигналы и запросы, проверка детерминизма, настройка pytest и Docker Compose. Скилл стоит поставить, если вы тестируете Temporal workflow на Python; для проектов без Temporal он не пригодится.
Какие задачи решает
- проверить workflow с пропуском времени
- изолировать логику workflow с помощью моков активностей
- протестировать отдельную активность через ActivityEnvironment
- проверить детерминизм workflow на истории выполнения
- настроить локальное окружение Temporal и pytest
Примеры запросов агенту
- Покажи пример модульного теста workflow с пропуском времени.
- Как замокать активности и проверить обработку ошибки?
- Как проверить детерминизм workflow перед деплоем?
Как установить temporal-python-testing
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install backend-development@claude-code-workflows2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill temporal-python-testing -a claude-code3Вручную: положить файлы
~/.claude/skills/temporal-python-testing/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/temporal-python-testing/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill temporal-python-testing -a codex2Вручную: положить файлы
.agents/skills/temporal-python-testing/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill temporal-python-testing -a cursor2Вручную: положить файлы
.cursor/skills/temporal-python-testing/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents temporal-python-testing2Вручную: положить файлы
.github/skills/temporal-python-testing/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/backend-development/skills/temporal-python-testingВручную: положить файлы
.devin/skills/temporal-python-testing/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о temporal-python-testing
Как установить temporal-python-testing в Claude Code?
Выполните npx skills add wshobson/agents --skill temporal-python-testing -a claude-code.
Что делает temporal-python-testing?
Скилл помогает тестировать Temporal workflow и активности на Python: запускать тесты с пропуском времени, применять моки и проверять детерминизм воспроизведением истории.
Как тестировать долгий Temporal workflow без ожидания?
Используйте WorkflowEnvironment с пропуском времени. Он позволяет проверять ход долгого workflow, не дожидаясь реального времени.
Исходный текст
SKILL.md · MIT
---
name: temporal-python-testing
description: Test Temporal workflows with pytest, time-skipping, and mocking strategies. Covers unit testing, integration testing, replay testing, and local development setup. Use when implementing Temporal workflow tests or debugging test failures.
---
# Temporal Python Testing Strategies
Comprehensive testing approaches for Temporal workflows using pytest, progressive disclosure resources for specific testing scenarios.
## When to Use This Skill
- **Unit testing workflows** - Fast tests with time-skipping
- **Integration testing** - Workflows with mocked activities
- **Replay testing** - Validate determinism against production histories
- **Local development** - Set up Temporal server and pytest
- **CI/CD integration** - Automated testing pipelines
- **Coverage strategies** - Achieve ≥80% test coverage
## Testing Philosophy
**Recommended Approach** (Source: docs.temporal.io/develop/python/testing-suite):
- Write majority as integration tests
- Use pytest with async fixtures
- Time-skipping enables fast feedback (month-long workflows → seconds)
- Mock activities to isolate workflow logic
- Validate determinism with replay testing
**Three Test Types**:
1. **Unit**: Workflows with time-skipping, activities with ActivityEnvironment
2. **Integration**: Workers with mocked activities
3. **End-to-end**: Full Temporal server with real activities (use sparingly)
## Available Resources
This skill provides detailed guidance through progressive disclosure. Load specific resources based on your testing needs:
### Unit Testing Resources
**File**: `resources/unit-testing.md`
**When to load**: Testing individual workflows or activities in isolation
**Contains**:
- WorkflowEnvironment with time-skipping
- ActivityEnvironment for activity testing
- Fast execution of long-running workflows
- Manual time advancement patterns
- pytest fixtures and patterns
### Integration Testing Resources
**File**: `resources/integration-testing.md`
**When to load**: Testing workflows with mocked external dependencies
**Contains**:
- Activity mocking strategies
- Error injection patterns
- Multi-activity workflow testing
- Signal and query testing
- Coverage strategies
### Replay Testing Resources
**File**: `resources/replay-testing.md`
**When to load**: Validating determinism or deploying workflow changes
**Contains**:
- Determinism validation
- Production history replay
- CI/CD integration patterns
- Version compatibility testing
### Local Development Resources
**File**: `resources/local-setup.md`
**When to load**: Setting up development environment
**Contains**:
- Docker Compose configuration
- pytest setup and configuration
- Coverage tool integration
- Development workflow
## Quick Start Guide
### Basic Workflow Test
```python
import pytest
from temporalio.testing import WorkflowEnvironment
from temporalio.worker import Worker
@pytest.fixture
async def workflow_env():
env = await WorkflowEnvironment.start_time_skipping()
yield env
await env.shutdown()
@pytest.mark.asyncio
async def test_workflow(workflow_env):
async with Worker(
workflow_env.client,
task_queue="test-queue",
workflows=[YourWorkflow],
activities=[your_activity],
):
result = await workflow_env.client.execute_workflow(
YourWorkflow.run,
args,
id="test-wf-id",
task_queue="test-queue",
)
assert result == expected
```
### Basic Activity Test
```python
from temporalio.testing import ActivityEnvironment
async def test_activity():
env = ActivityEnvironment()
result = await env.run(your_activity, "test-input")
assert result == expected_output
```
## Coverage Targets
**Recommended Coverage** (Source: docs.temporal.io best practices):
- **Workflows**: ≥80% logic coverage
- **Activities**: ≥80% logic coverage
- **Integration**: Critical paths with mocked activities
- **Replay**: All workflow versions before deployment
## Key Testing Principles
1. **Time-Skipping** - Month-long workflows test in seconds
2. **Mock Activities** - Isolate workflow logic from external dependencies
3. **Replay Testing** - Validate determinism before deployment
4. **High Coverage** - ≥80% target for production workflows
5. **Fast Feedback** - Unit tests run in milliseconds
## How to Use Resources
**Load specific resource when needed**:
- "Show me unit testing patterns" → Load `resources/unit-testing.md`
- "How do I mock activities?" → Load `resources/integration-testing.md`
- "Setup local Temporal server" → Load `resources/local-setup.md`
- "Validate determinism" → Load `resources/replay-testing.md`
## Additional References
- Python SDK Testing: docs.temporal.io/develop/python/testing-suite
- Testing Patterns: github.com/temporalio/temporal/blob/main/docs/development/testing.md
- Python Samples: github.com/temporalio/samples-python
© Seth Hobson · MIT · wshobson/agents