mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 19:02:31 +00:00
test: allow English fallback for untranslated CLI catalogs
This commit is contained in:
@@ -69,13 +69,43 @@ class TerminalCatalogsTests(unittest.TestCase):
|
|||||||
def test_shipped_active_catalogs_keep_literal_contracts(self):
|
def test_shipped_active_catalogs_keep_literal_contracts(self):
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
[sys.executable, '-B', str(SCRIPTS / 'check_terminal_catalogs.py'),
|
[sys.executable, '-B', str(SCRIPTS / 'check_terminal_catalogs.py'),
|
||||||
'--root', str(ROOT), '--require-complete'],
|
'--root', str(ROOT)],
|
||||||
capture_output=True, text=True, timeout=60,
|
capture_output=True, text=True, timeout=60,
|
||||||
)
|
)
|
||||||
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
|
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
|
||||||
for locale in MODULE.DEFAULT_LANGUAGES:
|
for locale in MODULE.DEFAULT_LANGUAGES:
|
||||||
self.assertIn(f'[{locale}] active=', result.stdout)
|
self.assertIn(f'[{locale}] active=', result.stdout)
|
||||||
self.assertNotIn('missing=1', result.stdout)
|
# New hand-reviewed Slovak keys ship with their source changes;
|
||||||
|
# other locales may use the runtime English fallback until translated.
|
||||||
|
result = subprocess.run(
|
||||||
|
[sys.executable, '-B', str(SCRIPTS / 'check_terminal_catalogs.py'),
|
||||||
|
'--root', str(ROOT), '--languages', 'sk', '--require-complete'],
|
||||||
|
capture_output=True, text=True, timeout=60,
|
||||||
|
)
|
||||||
|
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
|
||||||
|
self.assertIn('missing=0', result.stdout)
|
||||||
|
|
||||||
|
def test_optional_completeness_still_rejects_invalid_present_translations(self):
|
||||||
|
with tempfile.TemporaryDirectory() as temporary:
|
||||||
|
root = Path(temporary)
|
||||||
|
(root / 'scripts').mkdir()
|
||||||
|
(root / 'lang').mkdir()
|
||||||
|
(root / 'scripts/check.sh').write_text('translate "Check /etc/pve/storage.cfg"')
|
||||||
|
(root / 'lang/sk.json').write_text(json.dumps({'Check /etc/pve/storage.cfg': 'Skontrolujte /etc/pve/storage.cfg'}))
|
||||||
|
(root / 'lang/es.json').write_text('{}')
|
||||||
|
|
||||||
|
def check(languages, *flags):
|
||||||
|
return subprocess.run(
|
||||||
|
[sys.executable, '-B', str(SCRIPTS / 'check_terminal_catalogs.py'),
|
||||||
|
'--root', str(root), '--languages', languages, *flags],
|
||||||
|
capture_output=True, text=True, timeout=60,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(check('es,sk').returncode, 0)
|
||||||
|
self.assertEqual(check('sk', '--require-complete').returncode, 0)
|
||||||
|
self.assertNotEqual(check('es', '--require-complete').returncode, 0)
|
||||||
|
(root / 'lang/es.json').write_text(json.dumps({'Check /etc/pve/storage.cfg': 'Compruebe /etc/PVE/storage.cfg'}))
|
||||||
|
self.assertNotEqual(check('es,sk').returncode, 0)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
Reference in New Issue
Block a user