@@ -30,17 +30,23 @@ def find_format_keys(format_string: str) -> set[str]:
3030def test_format_key_validity (translation_filename : str ):
3131 default_translation = load_translation ("en.json" )
3232 translation = load_translation (translation_filename )
33+ invalid_keys : list [tuple [str , list [str ]]] = []
34+ missing_keys : list [tuple [str , list [str ]]] = []
3335 for key in default_translation :
3436 if key not in translation :
3537 continue
3638 default_keys = find_format_keys (default_translation [key ])
3739 translation_keys = find_format_keys (translation [key ])
38- assert default_keys .issuperset (translation_keys ), (
39- f"Translation { translation_filename } for key { key } is using an invalid format key ({ translation_keys .difference (default_keys )} )" # noqa: E501
40- )
41- assert translation_keys .issuperset (default_keys ), (
42- f"Translation { translation_filename } for key { key } is missing format keys ({ default_keys .difference (translation_keys )} )" # noqa: E501
43- )
40+ if not default_keys .issuperset (translation_keys ):
41+ invalid_keys .append ((key , list (translation_keys .difference (default_keys ))))
42+ if not translation_keys .issuperset (default_keys ):
43+ missing_keys .append ((key , list (default_keys .difference (translation_keys ))))
44+ assert len (invalid_keys ) == 0 , (
45+ f"Translation { translation_filename } has invalid format keys in some translations: { invalid_keys } " # noqa: E501
46+ )
47+ assert len (missing_keys ) == 0 , (
48+ f"Translation { translation_filename } is missing format keys in some translations: { missing_keys } " # noqa: E501
49+ )
4450
4551
4652@pytest .mark .parametrize (["translation_filename" ], get_translation_filenames ())
0 commit comments