| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- """
- Tests for translation files.
- """
- import warnings
- from fnmatch import fnmatch
- from os import walk
- from os.path import dirname, join
- from homeassistant.util.json import load_json
- import custom_components.tuya_local as root
- def get_translations():
- translations = join(dirname(root.__file__), "translations")
- for path, dirs, files in walk(translations):
- for file in files:
- if fnmatch(file, "*.json"):
- yield (file, load_json(join(path, file)))
- english = None
- def get_english():
- global english
- if english is None:
- translations = join(dirname(root.__file__), "translations", "en.json")
- json = load_json(translations)
- return json
- def json_compare_keys(english, json, file, path=""):
- for key in english:
- if key not in json:
- # Issue a warning rather than a failure.
- # This lets us catch all the missing translations at once.
- # Also, contributors shouldn't need to add translations for every language.
- warnings.warn(f"{file} Missing translation for {path}{key}")
- elif isinstance(english[key], dict):
- json_compare_keys(english[key], json[key], file, f"{path}{key}.")
- def test_missing_translations():
- english = get_english()
- for file, json in get_translations():
- json_compare_keys(english, json, file)
- # @pytest.mark.parametrize("device", get_devices())
- # def test_device_covered(device):
- # for entity in device.all_entities():
- # if entity.deprecated:
- # subtest_entity_covered(entity)
|