Files
hatchet/sdks/python/examples/durable/test_durable.py
T
Matt Kaye 46edb1f0b0 [Python] Fix: Remove global event loop setters everywhere (#1452)
* feat: factor out async to sync

* feat: remove global event loop setter in workflow listener

* fix: rm more global loop sets

* fix: more loop sets

* fix: more

* fix: more

* fix: rm one more

* fix: stream from thread

* fix: dispatcher

* fix: make tests have independent loop scopes (woohoo!)

* feat: use default loop scope

* fix: try adding back tests

* Revert "fix: try adding back tests"

This reverts commit bed34a9bae539650e4fe32e0518aa9d1c5c0af5c.

* fix: rm dead code

* fix: remove redundant `_utils`

* fix: add typing to client stubs + regenerate

* fix: create more clients lazily

* fix: print cruft

* chore: version

* fix: lint
2025-03-31 13:58:50 -04:00

34 lines
897 B
Python

import asyncio
import os
import pytest
from examples.durable.worker import EVENT_KEY, SLEEP_TIME, durable_workflow
from hatchet_sdk import Hatchet
@pytest.mark.skipif(
os.getenv("CI", "false").lower() == "true",
reason="Skipped in CI because of unreliability",
)
@pytest.mark.asyncio()
async def test_durable(hatchet: Hatchet) -> None:
ref = durable_workflow.run_no_wait()
await asyncio.sleep(SLEEP_TIME + 10)
hatchet.event.push(EVENT_KEY, {})
result = await ref.aio_result()
workers = await hatchet.workers.aio_list()
assert workers.rows
active_workers = [w for w in workers.rows if w.status == "ACTIVE"]
assert len(active_workers) == 2
assert any(w.name == "e2e-test-worker" for w in active_workers)
assert any(w.name.endswith("e2e-test-worker_durable") for w in active_workers)
assert result["durable_task"]["status"] == "success"