feat(core): advance options/state handling and workflow execution integration
- extend OptionsManager to support multi-namespace option resolution and toggling - integrate OptionsManager more deeply across Action, ChainedAction, and ActionGroup - propagate shared runtime configuration through execution layers - refine action composition model (sequential + parallel execution semantics) - improve lifecycle consistency across BaseAction, Action, ChainedAction, and ActionGroup - begin aligning execution flow with centralized context and options handling wip: routing and root option parsing behavior still in progress
This commit is contained in:
36
tests/test_actions/test_action_retries.py
Normal file
36
tests/test_actions/test_action_retries.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import pytest
|
||||
|
||||
from falyx.action import Action, ChainedAction
|
||||
from falyx.execution_registry import ExecutionRegistry as er
|
||||
from falyx.retry_utils import enable_retries_recursively
|
||||
|
||||
asyncio_default_fixture_loop_scope = "function"
|
||||
|
||||
|
||||
# --- Fixtures ---
|
||||
@pytest.fixture(autouse=True)
|
||||
def clean_registry():
|
||||
er.clear()
|
||||
yield
|
||||
er.clear()
|
||||
|
||||
|
||||
def test_action_enable_retry():
|
||||
"""Test if Action can be created with retry=True."""
|
||||
action = Action("test_action", lambda: "Hello, World!", retry=True)
|
||||
assert action.retry_policy.enabled is True
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_enable_retries_recursively():
|
||||
"""Test if Action can be created with retry=True."""
|
||||
action = Action("test_action", lambda: "Hello, World!")
|
||||
assert action.retry_policy.enabled is False
|
||||
|
||||
chained_action = ChainedAction(
|
||||
name="Chained Action",
|
||||
actions=[action],
|
||||
)
|
||||
|
||||
enable_retries_recursively(chained_action, policy=None)
|
||||
assert action.retry_policy.enabled is True
|
||||
Reference in New Issue
Block a user