from collections.abc import Mapping, Sequence
from typing import IO, Any
from click.testing import CliRunner as ClickCliRunner # noqa
from click.testing import Result
from typer.main import Typer
from typer.main import get_command as _get_command
class CliRunner(ClickCliRunner):
def invoke( # type: ignore
self,
app: Typer,
args: str | Sequence[str] | None = None,
input: bytes | str | IO[Any] | None = None,
env: Mapping[str, str | None] | None = None,
catch_exceptions: bool = True,
color: bool = False,
**extra: Any,
) -> Result:
use_cli = _get_command(app)
return super().invoke(
use_cli,
args=args,
input=input,
env=env,
catch_exceptions=catch_exceptions,
color=color,
**extra,
)