🎯

temporal-python-testing

🎯Skill

from eyh0602/skillshub

VibeIndex|
What it does

Enables comprehensive pytest-based testing for Temporal Python workflows with time-skipping, mocking, and replay validation strategies.

πŸ“¦

Part of

eyh0602/skillshub(14 items)

temporal-python-testing

Installation

CargoRun with Cargo (Rust)
cargo install skillshub
git cloneClone repository
git clone https://github.com/EYH0602/skillshub
CargoRun with Cargo (Rust)
cargo install --path .
PythonRun Python server
python -m pip install --user pre-commit
πŸ“– Extracted from docs: eyh0602/skillshub
1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

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.

Overview

# 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

More from this repository10

🎯
paper-polish🎯Skill

paper-polish skill from eyh0602/skillshub

🎯
code-reviewer🎯Skill

Automates comprehensive code reviews across multiple languages, providing in-depth analysis, best practices, security checks, and detailed review reports.

🎯
write-unit-tests🎯Skill

Generates comprehensive unit and integration tests for tldraw SDK using Vitest, covering editor functionality, shapes, tools, and test file organization.

🎯
docstring🎯Skill

Generates comprehensive, Sphinx-formatted docstrings for PyTorch functions and methods, following official PyTorch documentation conventions.

🎯
docs-review🎯Skill

Reviews documentation changes against Metabase's writing style guide, providing structured feedback for markdown files in pull requests or local diffs.

🎯
read-repo-references🎯Skill

read-repo-references skill from eyh0602/skillshub

🎯
senior-data-scientist🎯Skill

Guides data science professionals through advanced machine learning techniques, model deployment, and complex data analysis workflows.

🎯
python-packaging🎯Skill

Guides developers through creating, structuring, and publishing Python packages using modern packaging tools and best practices.

🎯
uv-package-manager🎯Skill

Manages and installs Python packages from UV package manager with simplified command-line interactions and dependency resolution.

🎯
code-change-verification🎯Skill

Verifies code changes by running formatting, linting, type checking, and tests in the OpenAI Agents Python repository.