feat(core): clone commands and actions when binding runtimes
Add clone support across Action types and Command so commands can be safely registered or runner-bound without mutating the original instances. - clone BaseAction implementations across simple, composite, IO, prompt, file, HTTP, process, and signal actions - bind cloned commands in Falyx.add_command_from_command() and CommandRunner - preserve local never_prompt settings when cloning actions - rename shared runtime state from options to options_manager for consistency - seed root and execution option namespaces consistently - apply scoped root and namespace option overrides during routing and dispatch - improve namespace completion by delegating option suggestions to FalyxParser - enrich missing-value errors and error hints
This commit is contained in:
15
tests/test_falyx/test_signals.py
Normal file
15
tests/test_falyx/test_signals.py
Normal file
@@ -0,0 +1,15 @@
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
|
||||
from falyx import Falyx
|
||||
|
||||
|
||||
async def test_run_quit_signal_exits_130(monkeypatch):
|
||||
flx = Falyx(default_to_menu=False)
|
||||
monkeypatch.setattr(sys, "argv", ["prog", "X"])
|
||||
|
||||
with pytest.raises(SystemExit) as exc:
|
||||
await flx.run()
|
||||
|
||||
assert exc.value.code == 130
|
||||
Reference in New Issue
Block a user