feat: scaffold manual multimodal test client

parent 2dd5754b
from pathlib import Path
from types import SimpleNamespace
import pytest
from tools.manual_multimodal_test_client import build_parser, choose_mode_interactively, parse_args
def test_parse_args_accepts_direct_mode_and_global_overrides():
args = parse_args([
"llm",
"--url", "http://127.0.0.1:6745",
"--token", "secret-token",
"--model", "text:test-model",
"--prompt", "Say hello",
"--output-dir", "tmp/out",
])
assert args.mode == "llm"
assert args.url == "http://127.0.0.1:6745"
assert args.token == "secret-token"
assert args.model == "text:test-model"
assert args.prompt == "Say hello"
assert args.output_dir == "tmp/out"
def test_choose_mode_interactively_maps_numeric_selection(monkeypatch):
monkeypatch.setattr("builtins.input", lambda _: "2")
mode = choose_mode_interactively()
assert mode == "transcription"
def test_parse_args_leaves_mode_empty_for_interactive_fallback():
args = parse_args([])
assert args.mode is None
from __future__ import annotations
import argparse
from pathlib import Path
from typing import Optional
MODES = [
"llm",
"transcription",
"audio-generation",
"video-generation",
"video-doubt",
"music-audio-doubt",
]
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="Manual multimodal smoke-test client")
parser.add_argument("mode", nargs="?", choices=MODES)
parser.add_argument("--url", default="http://127.0.0.1:6745")
parser.add_argument("--token", default=None)
parser.add_argument("--model", default=None)
parser.add_argument("--prompt", default=None)
parser.add_argument("--output-dir", default="tmp/manual-client-output")
parser.add_argument("--file", default=None)
parser.add_argument("--audio-file", default=None)
parser.add_argument("--video-file", default=None)
return parser
def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
return build_parser().parse_args(argv)
def choose_mode_interactively() -> str:
for idx, mode in enumerate(MODES, start=1):
print(f"{idx}. {mode}")
raw = input("Choose mode: ").strip()
selected = int(raw)
if selected < 1 or selected > len(MODES):
raise ValueError(f"Invalid mode selection: {raw}")
return MODES[selected - 1]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment