feat: add recursive namespace routing and standalone runner polish
- introduce namespace-aware routing with RootParseResult, RouteResult, and InvocationContext - register submenus as FalyxNamespace entries and resolve them through _entry_map - refactor FalyxParser to parse only root options and leave recursive routing to Falyx - add prepare_route, resolve_route, and route dispatch flow to Falyx - update validator and completer to understand namespace entries and route results - unify help/TLDR rendering APIs and add custom_tldr support on Command - tighten Command.resolve_args error handling and parser type validation - improve CommandRunner dependency validation and argv handling - add BottomBar.has_items and improve wrapped executor error messages - add tests for execution options, resolve_args, command runner, and route-aware validation
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import pytest
|
||||
from rich.text import Text
|
||||
|
||||
from falyx.console import console as falyx_console
|
||||
from falyx.exceptions import CommandArgumentError
|
||||
from falyx.parser import ArgumentAction, CommandArgumentParser
|
||||
from falyx.signals import HelpSignal
|
||||
@@ -825,4 +827,11 @@ async def test_render_help():
|
||||
parser.add_argument("--foo", type=str, help="Foo help")
|
||||
parser.add_argument("--bar", action=ArgumentAction.APPEND, type=str, help="Bar help")
|
||||
|
||||
assert parser.render_help() is None
|
||||
with falyx_console.capture() as capture:
|
||||
parser.render_help()
|
||||
output = Text.from_ansi(capture.get()).plain
|
||||
assert "usage:" in output
|
||||
assert "--foo" in output
|
||||
assert "Foo help" in output
|
||||
assert "--bar" in output
|
||||
assert "Bar help" in output
|
||||
|
||||
Reference in New Issue
Block a user