Browse Source

Add regression test for language files

pull/240/head
chriskiehl 7 years ago
parent
commit
3638aa4949
1 changed files with 41 additions and 0 deletions
  1. 41
      gooey/tests/test_language_parity.py

41
gooey/tests/test_language_parity.py

@ -0,0 +1,41 @@
import os
import unittest
import json
from collections import OrderedDict
from gooey import languages
from gooey.gui.processor import ProcessController
class TestLanguageParity(unittest.TestCase):
"""
Checks that all language files have the same set of keys so that non-english
languages don't silently break as features are added to Gooey.
"""
def test_languageParity(self):
langDir = os.path.dirname(languages.__file__)
englishFile = os.path.join(langDir, 'english.json')
english = self.readFile(englishFile)
jsonFiles = [(path, self.readFile(os.path.join(langDir, path)))
for path in os.listdir(langDir)
if path.endswith('json') and 'poooo' not in path and '2' not in path]
allKeys = set(english.keys())
for name, contents in jsonFiles:
missing = allKeys.difference(set(contents.keys()))
self.assertEqual(
set(),
missing,
"{} language file is missing keys: [{}]".format(name, missing)
)
def readFile(self, path):
with open(path, 'r', encoding='utf-8') as f:
return json.loads(f.read())
if __name__ == '__main__':
unittest.main()
Loading…
Cancel
Save