From e308e8e80dd2ee2c5b5b808e93d00d52da96dcc8 Mon Sep 17 00:00:00 2001 From: Jann Stute <46534683+Computerdores@users.noreply.github.com> Date: Tue, 11 Mar 2025 02:41:40 +0100 Subject: [PATCH] fix: log all problems in translations test (#839) --- tests/test_translations.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/test_translations.py b/tests/test_translations.py index 9ec004ad..1814a950 100644 --- a/tests/test_translations.py +++ b/tests/test_translations.py @@ -30,17 +30,23 @@ def find_format_keys(format_string: str) -> set[str]: def test_format_key_validity(translation_filename: str): default_translation = load_translation("en.json") translation = load_translation(translation_filename) + invalid_keys: list[tuple[str, list[str]]] = [] + missing_keys: list[tuple[str, list[str]]] = [] for key in default_translation: if key not in translation: continue default_keys = find_format_keys(default_translation[key]) translation_keys = find_format_keys(translation[key]) - assert default_keys.issuperset(translation_keys), ( - f"Translation {translation_filename} for key {key} is using an invalid format key ({translation_keys.difference(default_keys)})" # noqa: E501 - ) - assert translation_keys.issuperset(default_keys), ( - f"Translation {translation_filename} for key {key} is missing format keys ({default_keys.difference(translation_keys)})" # noqa: E501 - ) + if not default_keys.issuperset(translation_keys): + invalid_keys.append((key, list(translation_keys.difference(default_keys)))) + if not translation_keys.issuperset(default_keys): + missing_keys.append((key, list(default_keys.difference(translation_keys)))) + assert len(invalid_keys) == 0, ( + f"Translation {translation_filename} has invalid format keys in some translations: {invalid_keys}" # noqa: E501 + ) + assert len(missing_keys) == 0, ( + f"Translation {translation_filename} is missing format keys in some translations: {missing_keys}" # noqa: E501 + ) @pytest.mark.parametrize(["translation_filename"], get_translation_filenames())