mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-09 02:15:32 +00:00
This change rename the test files for Linux according to the discussion at the Keyman conference in November 2024. Python is pretty opinionated about the naming of files, so we have to use `*_tests.py` as test filename instead of the usual `*.tests.py`.
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
import os
|
|
import shutil
|
|
import sys
|
|
import tempfile
|
|
import unittest
|
|
|
|
from keyman_config.kvk2ldml import KVKData, NFont, convert_ldml
|
|
|
|
class Kvk2LdmlTests(unittest.TestCase):
|
|
def _createKmpJson(self, packagedir):
|
|
kmpJsonFilename = os.path.join(packagedir, 'kmp.json')
|
|
with open(kmpJsonFilename, 'w') as file:
|
|
file.write('''{
|
|
"system": {
|
|
"keymanDeveloperVersion": "18.0",
|
|
"fileVersion": "7.0"
|
|
},
|
|
"files": [ {
|
|
"name": "khmer_angkor.kmx",
|
|
"description": "Keyboard Khmer Angkor"
|
|
}, {
|
|
"name": "kmp.json",
|
|
"description": "Package information (JSON)"
|
|
} ],
|
|
"keyboards": [ {
|
|
"name": "Khmer Angkor",
|
|
"id": "khmer_angkor",
|
|
"version": "1.5",
|
|
"oskFont": "keymanweb-osk.ttf",
|
|
"languages": [ {
|
|
"name": "Central Khmer (Khmer, Cambodia)",
|
|
"id": "km"
|
|
} ]}
|
|
]}''')
|
|
return kmpJsonFilename
|
|
|
|
def test_convert_ldml__adds_keymanFacename(self):
|
|
# Setup
|
|
keyboardName = 'khmer_angkor'
|
|
kvkData = KVKData()
|
|
kvkData.AssociatedKeyboard = keyboardName
|
|
kvkData.UnicodeFont = NFont()
|
|
kvkData.UnicodeFont.name='DontUseThis!'
|
|
|
|
workdir = tempfile.TemporaryDirectory()
|
|
kmpJsonFilename = self._createKmpJson(workdir.name)
|
|
shutil.copy2(os.path.join(sys.path[0], '../../../common/resources/fonts/keymanweb-osk.ttf'),
|
|
workdir.name)
|
|
|
|
# Execute
|
|
ldml = convert_ldml(keyboardName, kvkData, kmpJsonFilename)
|
|
|
|
# Verify
|
|
self.assertEqual(ldml.get('locale'), "zzz-keyman")
|
|
self.assertEqual(ldml.get('keymanFacename'), 'SymChar')
|
|
|
|
workdir.cleanup()
|