From e5417b67999667346701e3c9b9f057d1bfd0f5e7 Mon Sep 17 00:00:00 2001 From: DaZuo0122 <1085701449@qq.com> Date: Sat, 14 Feb 2026 22:49:28 +0800 Subject: [PATCH] Add: backend testing script for new states --- docs/RANDOM_BACKEND_TESTING.md | 7 +++++++ scripts/random_backend_tester.py | 25 ++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/docs/RANDOM_BACKEND_TESTING.md b/docs/RANDOM_BACKEND_TESTING.md index d44c095..65d7e5e 100644 --- a/docs/RANDOM_BACKEND_TESTING.md +++ b/docs/RANDOM_BACKEND_TESTING.md @@ -18,6 +18,13 @@ Supporting checks: - `GET /v1/health` - `GET /v1/state` (periodic sampling) +Animation traffic now targets row-based sprite names plus compatibility aliases: + +- semantic names: `idle`, `happy`, `love`, `excited`, `celebrate`, `sleepy`, `snoring`, + `working`, `angry`, `surprised`, `shy`, `dragging` +- compatibility aliases: `active`, `success`, `error` +- one intentional unknown name is still included to keep invalid animation-path coverage + ## Prerequisites - Frontend runtime is already running (`sprimo-app` or `sprimo-tauri`). diff --git a/scripts/random_backend_tester.py b/scripts/random_backend_tester.py index 7c80baa..a72ba19 100644 --- a/scripts/random_backend_tester.py +++ b/scripts/random_backend_tester.py @@ -18,6 +18,27 @@ from typing import Any from urllib.error import HTTPError, URLError from urllib.request import Request, urlopen +ANIMATION_NAMES = ( + "idle", + "happy", + "love", + "excited", + "celebrate", + "sleepy", + "snoring", + "working", + "angry", + "surprised", + "shy", + "dragging", + # Backward-compatible aliases mapped in runtime/manifests. + "active", + "success", + "error", + # Intentionally invalid to keep unknown-animation traffic coverage. + "unknown_anim", +) + def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser( @@ -205,9 +226,7 @@ def random_valid_command(rng: random.Random) -> dict[str, Any]: if pick == "play_animation": payload = { - "name": rng.choice( - ["idle", "dance", "typing", "celebrate", "error", "unknown_anim"] - ), + "name": rng.choice(ANIMATION_NAMES), "priority": rng.randint(0, 10), "duration_ms": rng.choice([None, 250, 500, 1000, 3000]), "interrupt": rng.choice([None, True, False]),