From 48be654cf4e47645c2a64642c6b0de6b63dbe404 Mon Sep 17 00:00:00 2001 From: cnYui Date: Mon, 8 Jun 2026 20:30:54 +0900 Subject: [PATCH] fix: handle empty text_to_audio errors consistently --- minimax_mcp/server.py | 6 +++--- tests/test_server.py | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 tests/test_server.py diff --git a/minimax_mcp/server.py b/minimax_mcp/server.py index ce74c5e..d625623 100644 --- a/minimax_mcp/server.py +++ b/minimax_mcp/server.py @@ -87,9 +87,6 @@ def text_to_audio( format: str = DEFAULT_FORMAT, language_boost: str = DEFAULT_LANGUAGE_BOOST, ): - if not text: - raise MinimaxRequestError("Text is required.") - payload = { "model": model, "text": text, @@ -111,6 +108,9 @@ def text_to_audio( if resource_mode == RESOURCE_MODE_URL: payload["output_format"] = "url" try: + if not text: + raise MinimaxRequestError("Text is required.") + response_data = api_client.post("/v1/t2a_v2", json=payload) audio_data = response_data.get('data', {}).get('audio', '') diff --git a/tests/test_server.py b/tests/test_server.py new file mode 100644 index 0000000..06b9655 --- /dev/null +++ b/tests/test_server.py @@ -0,0 +1,21 @@ +import importlib +import sys + +from mcp.types import TextContent + + +def load_server(monkeypatch): + monkeypatch.setenv("MINIMAX_API_KEY", "test-key") + monkeypatch.setenv("MINIMAX_API_HOST", "https://api.example.com") + sys.modules.pop("minimax_mcp.server", None) + return importlib.import_module("minimax_mcp.server") + + +def test_text_to_audio_returns_text_content_for_empty_text(monkeypatch): + server = load_server(monkeypatch) + + result = server.text_to_audio(text="") + + assert isinstance(result, TextContent) + assert result.type == "text" + assert result.text == "Failed to generate audio: Text is required."