From 25a595d66b8feb357f16af7d99b0debfe2e61290 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 9 Sep 2026 21:34:41 -0400 Subject: [PATCH] Allow optional copyable text --- music_assistant_models/setup_flow.py | 2 ++ tests/test_setup_flow.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/music_assistant_models/setup_flow.py b/music_assistant_models/setup_flow.py index 274299e3..a12e4906 100644 --- a/music_assistant_models/setup_flow.py +++ b/music_assistant_models/setup_flow.py @@ -40,6 +40,8 @@ class SetupFlowStep(DataClassDictMixin): last_step: bool | None = None # url [EXTERNAL]: url the user must open (e.g. an OAuth authorize url) url: str | None = None + # copy_text [EXTERNAL]: optional value that the client may copy to the clipboard + copy_text: str | None = None # progress_text [PROGRESS]: status slug/message, resolved from the translations at serialization progress_text: str | None = None # progress [PROGRESS]: optional completion fraction between 0 and 1 diff --git a/tests/test_setup_flow.py b/tests/test_setup_flow.py index aa2b4f11..6ef51c5e 100644 --- a/tests/test_setup_flow.py +++ b/tests/test_setup_flow.py @@ -60,17 +60,19 @@ def test_form_step_shape() -> None: def test_external_step_shape() -> None: - """An EXTERNAL step carries the url to open and an optional deadline.""" + """An EXTERNAL step carries the url to open, copyable text and an optional deadline.""" step = SetupFlowStep( flow_id="f", step_id="oauth", type=FlowStepType.EXTERNAL, url="https://example.test/authorize", + copy_text="123456", expires_at=1234.5, ) d = step.to_dict() assert d["type"] == "external" assert d["url"] == "https://example.test/authorize" + assert d["copy_text"] == "123456" assert d["expires_at"] == 1234.5