ASD

Temporal Python Testing

Prueba workflows de Temporal con pytest, time-skipping y estrategias de mocking: testing unitario, de integración, de replay y configuración de desarrollo local.

Estrellas
38.8k

en todo el repo

Actividad
41

0–100, la ruta de este skill

Actualizado
hace 3 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
1.2k tok

59 tok en reposo

Paquete
5 archivos

50 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill temporal-python-testing --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Ofrece guía para probar workflows de Temporal con pytest, time-skipping y mocking
  • Explica los tres tipos de test: unitario, integración y end-to-end
  • Carga recursos progresivos según la necesidad: unit-testing.md, integration-testing.md, replay-testing.md, local-setup.md
  • Da patrones de código para testear workflows con WorkflowEnvironment y activities con ActivityEnvironment
  • Define objetivos de cobertura (≥80%) y principios clave de testing

Úsalo cuando

  • Al implementar tests para workflows de Temporal o depurar fallos de tests
  • Al hacer testing unitario con time-skipping
  • Al hacer testing de integración con activities mockeadas
  • Al validar determinismo con replay testing o configurar entorno local

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Muéstrame patrones de testing unitario para workflows de Temporal
    • ¿Cómo mockeo activities en un test de integración?
    • Configura un servidor Temporal local para pytest
    • Valida el determinismo de mi workflow con replay testing

    SKILL.md

    En inglés

    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

    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

    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

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    5 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere el SDK de Python de Temporal, pytest y, para pruebas end-to-end, un servidor Temporal local (por ejemplo vía Docker Compose).

    Detalles

    Creador
    wshobson
    Categoría
    Testing y QA
    Licencia
    MIT
    Recursos incluidos
    Incluye scripts o referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Testea contratos inteligentes de forma exhaustiva con Hardhat y Foundry: tests unitarios, de integración y forking de mainnet.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    testing qa

    Realiza auditorías de accesibilidad WCAG 2.2 con pruebas automatizadas, verificación manual y guía de remediación. Útil para auditar sitios, corregir violaciones y aplicar patrones de diseño accesible.

    Costo de contexto al activarse
    628 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    testing qa

    Úsalo al revisar código Python en busca de antipatrones comunes: como checklist antes de finalizar implementaciones o al depurar problemas derivados de malas prácticas conocidas.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 4 meses
    testing qa