Навыки temporal-python-testing
🧪

temporal-python-testing

Безопасно ⚙️ Внешние команды🌐 Доступ к сети📁 Доступ к файловой системе

Тестирование Temporal workflows с помощью pytest и моков

Тесты Temporal workflow часто медленные или нестабильные. Этот навык предоставляет быстрые, детерминированные паттерны тестирования с использованием пропуска времени, мокирования активностей и проверки воспроизведения для надежных CI/CD пайплайнов.

Поддерживает: Claude Codex Code(CC)
📊 69 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «temporal-python-testing». Создайте план тестирования для Temporal workflows с покрытием модульных, интеграционных и тестов воспроизведения.

Ожидаемый результат:

  • Используйте WorkflowEnvironment с пропуском времени для быстрых модульных тестов workflow
  • Мокируйте внешние зависимости в интеграционных тестах и проверяйте пути обработки ошибок
  • Экспортируйте production истории и воспроизводите их против нового кода перед деплоем

Использование «temporal-python-testing». Как протестировать workflow, который имеет логику повторных попыток и несколько активностей?

Ожидаемый результат:

  • Создайте тест с замокированными активностями для изоляции логики workflow
  • Используйте ActivityEnvironment для тестирования обработки ошибок конкретной активности
  • Проверьте поведение повторных попыток, подсчитывая вызовы активностей
  • Тестируйте успешные и неуспешные пути с проверками

Использование «temporal-python-testing». Какие распространенные ошибки при тестировании Temporal workflows?

Ожидаемый результат:

  • Вызов реальных внешних API вместо их мокирования
  • Использование random() или datetime.now(), что ломает детерминированность воспроизведения
  • Пропуск тестов воспроизведения перед деплоем изменений workflow
  • Не использование пропуска времени для длительных тестов workflow

Аудит безопасности

Безопасно
v4 • 1/17/2026

Educational documentation for Temporal workflow testing. Static scanner false positives: markdown code block backticks flagged as shell execution, legitimate docs URLs as hardcoded URLs, and test code patterns as cryptographic/C2 indicators. Previous Claude audit (skill-report.json) confirmed safe with no risk factors. All 149 findings are false positives from documentation patterns.

6
Просканировано файлов
2,131
Проанализировано строк
3
находки
4
Всего аудитов

Факторы риска

⚙️ Внешние команды (125)
resources/integration-testing.md:11-49 resources/integration-testing.md:49-54 resources/integration-testing.md:54-102 resources/integration-testing.md:102-109 resources/integration-testing.md:109-152 resources/integration-testing.md:152-157 resources/integration-testing.md:157-197 resources/integration-testing.md:197-203 resources/integration-testing.md:203-260 resources/integration-testing.md:260-264 resources/integration-testing.md:264-301 resources/integration-testing.md:301-307 resources/integration-testing.md:307-358 resources/integration-testing.md:358-366 resources/integration-testing.md:366-376 resources/integration-testing.md:376-382 resources/integration-testing.md:382-393 resources/integration-testing.md:393-399 resources/integration-testing.md:399-411 resources/integration-testing.md:411-415 resources/integration-testing.md:415-436 resources/local-setup.md:9-54 resources/local-setup.md:54-58 resources/local-setup.md:58-76 resources/local-setup.md:76-80 resources/local-setup.md:80-120 resources/local-setup.md:120-126 resources/local-setup.md:126-153 resources/local-setup.md:153-157 resources/local-setup.md:157-184 resources/local-setup.md:184-188 resources/local-setup.md:188-235 resources/local-setup.md:235-239 resources/local-setup.md:239-246 resources/local-setup.md:246-248 resources/local-setup.md:248-273 resources/local-setup.md:273-279 resources/local-setup.md:279-301 resources/local-setup.md:301-305 resources/local-setup.md:305-323 resources/local-setup.md:323-327 resources/local-setup.md:327-342 resources/local-setup.md:342-348 resources/local-setup.md:348-366 resources/local-setup.md:366-370 resources/local-setup.md:370-383 resources/local-setup.md:383-387 resources/local-setup.md:387-424 resources/local-setup.md:424-428 resources/local-setup.md:428-472 resources/local-setup.md:472-478 resources/local-setup.md:478-485 resources/local-setup.md:485-489 resources/local-setup.md:489-497 resources/local-setup.md:497-501 resources/local-setup.md:501-507 resources/local-setup.md:507-522 resources/local-setup.md:522-529 resources/local-setup.md:529-532 resources/local-setup.md:532-535 resources/local-setup.md:535-538 resources/local-setup.md:538-543 resources/local-setup.md:372 resources/replay-testing.md:25-47 resources/replay-testing.md:47-51 resources/replay-testing.md:51-74 resources/replay-testing.md:74-81 resources/replay-testing.md:81-95 resources/replay-testing.md:95-98 resources/replay-testing.md:98-114 resources/replay-testing.md:114-117 resources/replay-testing.md:117-136 resources/replay-testing.md:136-140 resources/replay-testing.md:140-176 resources/replay-testing.md:176-182 resources/replay-testing.md:182-199 resources/replay-testing.md:199-203 resources/replay-testing.md:203-218 resources/replay-testing.md:218-224 resources/replay-testing.md:224-264 resources/replay-testing.md:264-268 resources/replay-testing.md:268-302 resources/replay-testing.md:302-306 resources/replay-testing.md:306-344 resources/replay-testing.md:344-350 resources/replay-testing.md:350-394 resources/replay-testing.md:394-398 resources/replay-testing.md:398-420 resources/replay-testing.md:420-435 resources/replay-testing.md:435-439 resources/replay-testing.md:439-444 resources/replay-testing.md:444-446 resources/unit-testing.md:11-39 resources/unit-testing.md:39-42 resources/unit-testing.md:42-49 resources/unit-testing.md:49-72 resources/unit-testing.md:72-75 resources/unit-testing.md:75-97 resources/unit-testing.md:97-102 resources/unit-testing.md:102-137 resources/unit-testing.md:137-145 resources/unit-testing.md:145-158 resources/unit-testing.md:158-163 resources/unit-testing.md:163-177 resources/unit-testing.md:177-180 resources/unit-testing.md:180-197 resources/unit-testing.md:197-202 resources/unit-testing.md:202-222 resources/unit-testing.md:222-228 resources/unit-testing.md:228-244 resources/unit-testing.md:244-248 resources/unit-testing.md:248-258 resources/unit-testing.md:258-273 resources/unit-testing.md:273-314 SKILL.md:38 SKILL.md:48 SKILL.md:58 SKILL.md:67 SKILL.md:79-105 SKILL.md:105-109 SKILL.md:109-116 SKILL.md:116-137 SKILL.md:137-138 SKILL.md:138-139 SKILL.md:139-140
🌐 Доступ к сети (6)
📁 Доступ к файловой системе (4)

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
19
Сообщество
100
Безопасность
91
Соответствие спецификации

Что вы можете построить

Добавить быстрые модульные тесты

Создавайте быстрые тесты workflow и активностей с пропуском времени, которые выполняются за миллисекунды вместо часов.

Валидировать интеграционные потоки

Мокируйте внешние сервисы и проверяйте сложные пути оркестрации workflow с инъекцией ошибок.

Запускать проверки воспроизведения

Подтверждайте детерминированность workflow перед деплоем и проверяйте совместимость версий.

Попробуйте эти промпты

Начать модульное тестирование
Покажите минимальную настройку pytest для тестирования workflow с пропуском времени и простой активностью. Включите фикстуры и проверки.
Мокировать активности
Предоставьте пример интеграционного теста, который мокирует активности и проверяет логику ветвления workflow на основе результатов активностей.
Проверка безопасности воспроизведения
Объясните, как воспроизводить истории workflow из production и обнаруживать недетерминированные изменения, которые могут сломать выполняющиеся workflow.
План покрытия CI
Опишите полный план CI с маркерами pytest, порогами покрытия и автоматизированными тестами воспроизведения для безопасных деплоев.

Лучшие практики

  • Используйте пропуск времени для всех модульных тестов workflow, чтобы выполнять месячные workflow за секунды
  • Мокируйте внешние зависимости в интеграционных тестах для изоляции логики workflow
  • Запускайте тесты воспроизведения перед деплоем любых изменений workflow для обеспечения детерминированности

Избегать

  • Вызов реальных внешних API внутри тестов workflow вместо их мокирования
  • Использование random() или datetime.now() в коде workflow безTemporal helpers
  • Пропуск тестов воспроизведения после значительных рефакторингов или изменений логики workflow

Часто задаваемые вопросы

Какие версии Python поддерживаются?
Примеры ориентированы на Python 3.10 или новее с Temporal Python SDK v1.5.0 или новее.
Есть ли ограничения на размер тестов?
Нет фиксированных ограничений, но большие наборы тестов воспроизведения следует группировать в CI для производительности.
Могу ли я интегрировать это с существующими настройками pytest?
Да, руководство использует стандартные фикстуры и маркеры pytest, которые работают с существующими конфигурациями.
Имеет ли этот навык доступ к моим данным или учетным данным?
Нет, оно предоставляет только руководство и не читает файлы, переменные окружения или секреты.
Что делать, если тесты не проходят из-за недетерминированности?
Используйте workflow.get_version() для безопасных изменений и избегайте random или datetime без Temporal helpers.
Чем это отличается от сквозных тестов?
Оно делает акцент на более быстрых модульных и интеграционных тестах с мокированием, используя тесты воспроизведения для проверки безопасности.

Сведения для разработчиков

Автор

wshobson

Лицензия

MIT

Ссылка

main

Структура файлов