falyx/tests/test_run_key.py

47 lines
1.0 KiB
Python

import pytest
from falyx import Falyx
from falyx.action import Action
@pytest.mark.asyncio
async def test_run_key():
"""Test if Falyx can run in run key mode."""
falyx = Falyx("Run Key Test")
# Add a simple command
falyx.add_command(
key="T",
description="Test Command",
action=lambda: "Hello, World!",
)
# Run the CLI
result = await falyx.run_key("T")
assert result == "Hello, World!"
@pytest.mark.asyncio
async def test_run_key_recover():
"""Test if Falyx can recover from a failure in run key mode."""
falyx = Falyx("Run Key Recovery Test")
state = {"count": 0}
async def flaky():
if not state["count"]:
state["count"] += 1
raise RuntimeError("Random failure!")
return "ok"
# Add a command that raises an exception
falyx.add_command(
key="E",
description="Error Command",
action=Action("flaky", flaky),
retry=True,
)
result = await falyx.run_key("E")
assert result == "ok"