From abcbb5c2ab5f5dcabf42bfffacca374d79cac712 Mon Sep 17 00:00:00 2001
From: Roman Zeyde <roman.zeyde@satoshilabs.com>
Date: Tue, 11 Mar 2025 16:53:35 +0200
Subject: [PATCH] test(python): don't send ChangeLanguage during setup if not
 needed

[no changelog]
---
 tests/device_tests/test_language.py | 4 ++--
 tests/translations.py               | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/tests/device_tests/test_language.py b/tests/device_tests/test_language.py
index d313608ee2..85add053bf 100644
--- a/tests/device_tests/test_language.py
+++ b/tests/device_tests/test_language.py
@@ -60,10 +60,10 @@ def get_ping_title(lang: str) -> str:
 def client(client: Client) -> Iterator[Client]:
     lang_before = client.features.language or ""
     try:
-        set_language(client, "en")
+        set_language(client, "en", force=True)
         yield client
     finally:
-        set_language(client, lang_before[:2])
+        set_language(client, lang_before[:2], force=True)
 
 
 def _check_ping_screen_texts(client: Client, title: str, right_button: str) -> None:
diff --git a/tests/translations.py b/tests/translations.py
index 84d8a95f27..f4f4551863 100644
--- a/tests/translations.py
+++ b/tests/translations.py
@@ -64,13 +64,14 @@ def build_and_sign_blob(
     return sign_blob(blob)
 
 
-def set_language(client: Client, lang: str):
+def set_language(client: Client, lang: str, *, force: bool = True):
     if lang.startswith("en"):
         language_data = b""
     else:
         language_data = build_and_sign_blob(lang, client)
     with client:
-        device.change_language(client, language_data)  # type: ignore
+        if not client.features.language.startswith(lang) or force:
+            device.change_language(client, language_data)  # type: ignore
     _CURRENT_TRANSLATION.TR = TRANSLATIONS[lang]