Skills Agentes

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
39.8k

en todo el repo

Actividad
37

0–100, la ruta de este skill

Actualizado
hace 5 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 183 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack agents entero y su comando de instalación

    Instala y opera Hermes Tweet, un plugin de Hermes Agent para investigar X/Twitter, leer timelines, analizar tweets y ejecutar operaciones privadas o de cambio de estado con aprobación previa.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    redes sociales

    Úsalo para mantener un almacén Markdown de conocimiento donde cada afirmación compilada se rastrea hasta una fuente inmutable y el drift se detecta con git diff sin gastar tokens.

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

    Úsalo al diseñar o revisar un esquema específico de PostgreSQL: buenas prácticas, tipos de datos, indexación, restricciones, patrones de rendimiento y funciones avanzadas.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 24 días
    bases de datos

    Úsalo cuando un proyecto guarda su estado en Superself: lee `self context` al iniciar sesión, vincula el trabajo a una work unit, reporta con evidencia y registra decisiones confirmadas.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 24 días
    productividad

    Ú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

    Audita y reescribe prosa para que deje de sonar generada por máquina. Incluye modo solo-detección, modo reescritura y modo edición en el lugar, con perfiles opcionales de voz y contexto.”

    Costo de contexto al activarse
    1.9k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    el mes pasado
    redaccion contenido

    Skills relacionados

    Úsalo tras generar código con IA, aceptar sugerencias o revisar módulos escritos por IA, o cuando el código funcione pero parezca frágil o con deuda oculta.

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

    Domina Bats (Bash Automated Testing System) para probar exhaustivamente scripts de shell, útil en TDD y pipelines CI/CD.

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

    Filtra checkpoints fine-tuneados con presupuestos de drift, comparación pareada y chequeos de olvido antes de promoverlos, tras un entrenamiento o al re-gatear un modelo ya promovido.

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